What Design Patterns Represent

Listen to this post
Subscribe

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:

  1. Design to Interfaces.
  2. Favor composition over inheritance.
  3. 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
  • Testability

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.