The Design Patterns movement, begun (in software) by Gamma, Helm, Johnson, and Vlissides, essentially elevated certain design elements as valuable, repeated, high-quality examples of a particular approach to design.
Their general advice was given in three parts:
- Design to Interfaces.
- Favor composition over inheritance.
- Encapsulate the concept that varies.
All patterns adhere to this rubric in different ways. But they also all exhibit certain qualities of design and the all adhere to a set of shared principles. What I will outline in following posts are the three bits of guidance listed above, as well as how each pattern respects:
- Strong Cohesion
- Proper Coupling
- Robust Encapsulation
- Avoiding Redundancy
In addition, I will submit that each pattern follows good principles in design, such as Open-Closed, The Separation of Concerns, and others.
I’ll start with the definitions, then examine the patterns.
This is Al Shalloway. Visit us at www.netobjectives.com.
This is Scott Bain. Visit us at www.netobjectives.com.