Explaining Software Design PatternsHere we have a list of articles explaining (better than others) certain design patterns:
- MVVM generalizing the MVC Pattern
- Inversion of Control (IoC)
Inversion of Control is to guranatee that classes needing a specific service are not hardcoded to use one specific implementation of this service: Which implementation to use can be specified by the user.
The trick is to use interfaces and a singleton class IoC to assign to each interface one specific implementation (either hardcoded in this singleton, or to be read from a configuration file).
One specific use of this mechanism is for test: ...
- Design Patterns for Java
- Pattern Implementation in C#
- Details on a Design Pattern for:
- Chain of Responsibility
- Abstract Factory
- Factory Method
- Dependency Injection (e.g. Inversion of Control, see above)
- Singleton und Costs of it
- static in Java
- and more ... (see also RefCardz)
The Builder Pattern is a nice example on how using design patterns can make our code more robust. However, Nel's example also shows that using patterns can make our code much more complex.
The Builder Pattern ist clearly more a documentation pattern than a nice code pattern.
Replacing public class members by private members and get/set methods is another example how using patterns can force us to write more code than necessary.
- Comments on 36 Design Patterns
- Will SAM replace MVC?
- Don't underestimate the Importance of a precise Requirements Specification
tags: Pattern1gegreit Design1gegreit Inversion1gegreit