Showing posts with label coding. Show all posts
Showing posts with label coding. Show all posts

Tuesday, April 5, 2011

Lesser Known Design Patterns with Bevan Arps

Wellington Dot Net User Group Meeting

  1. NULL Object Pattern - useful to declutter your code. Requires creation of a Null object in order to remove requirement to always check whether your object exists.

  2. Command Pattern - Create function objects that interact with the object hierarchy.


    • Effects: Localises code; Undo/Compensation; New function: New object.

    • Considerations: Open-closed principle; # Classes; Likelihood of changes

  3. Emancipated Objects Pattern - make objects responsibile for maintaining their own state.


    • Effects: Read-only properties; Mutator methods; Validation

    • Considerations: Applicability; Reusability; ORMs

  4. Proposal Pattern - Complex Domain Factories. Explictly model the process that leads up to creation of the original object.

    • Effects: Natural Validation; Reduced Complexity; Increased Flexibility; Error Tolerant.

      Considerations: Process Complexity; Process Duration.

  5. State Pattern - Complex Domain Behaviour. Partially change the type of the object by swapping out behaviours based on state.

    • Effects: Switching removed; Grouped behaviour

    • Considerations: # Classes; Encapsulation; Complexity of Behaviour