Saturday, 3 January 2009

Design Patterns

Ready to develop your Architecture and Design skills more?

  • Design patterns are design solutions for recurring problems in the software development.
  • It's important to emphasize that it's a design technique more than implementation technique.
  • Understanding the available design patterns is good (theory) but applying them in a real project needs professional experience and design skills and it's mainly the job of a Solution Architect. Seeing more examples help developing this skill.
  • To truely understand design patterns, first you should understand what problems they are going to solve so that you can choose them in the real world.
Creational Patterns:
  • Builder (4 roles: abstract builder + concrete builders + product) : 1, 2, 3
  • Prototype (1 role: a class which implements IClonable): 1, 2
  • Factory Method (2 roles: abstract product containing the factory method + concrete products): 1, 2
  • Abstract Factory (5 roles: product interface + concrete products + factory interface + concrete factories + client has a method to return a product interface and accepting a factory interface): 1, 2, 3, 4
  • Singleton (1 role: a class which allows only one object to be created and shared): 1, 2, 3

Structural Patterns:

  • Decorator (4 roles: decorator + concrete decorators + component + concrete components): 1, 2, 3
  • Adapter (3 roles: Adapter + Adaptee + Target): best article

Behavioral Patterns:

  • Strategy (3 roles: strategy interface + concrete strategies + context object which utilizes strategy): 1, 2, 3, 4, 5, 6, 7, 8
  • Observer (3 roles: observer interface + concrete observer + subject): 1, 2

To be updated...

No comments: