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.
- 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
- Decorator (4 roles: decorator + concrete decorators + component + concrete components): 1, 2, 3
- Adapter (3 roles: Adapter + Adaptee + Target): best article
- 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...