Core Developer Skills: Patterns

Recommended resource

Related training

Provide Feedback
Wisdom applies generally, as principles do, but also in specifics ways when confronted by specific kinds of problems. When these specifics repeat, there is value in sharing the patterns that we discover, giving them names to make them more shareable, and thereby creating a professional vocabulary.

In our profession there are many books on patterns. Trying to “learn all the patterns” is probably too much to ask, and also is not really necessary once we understand the principles, practices, and wisdom that underlie all patterns.

There are patterns that seem to arise in all domains, and that represent the best examples of the general value of pattern. We consider these to be those essential patterns, those that every developer should know, listed in the order we suggest you learn them. These are covered in the course, Foundations of Sustainable Design. In this course, you learn the pattern by watching video explanations and exploring with code examples and discussions.

  • Strategy
  • Template Method
  • Bridge
  • Adapter
  • Facade
  • Analysis Matrix
  • Abstract Factory
  • Factory Method
  • Iterator
  • Singleton
  • Proxy
  • Decorator
  • Chain of Responsibility
  • Composite
  • Object Pool
  • Mediator
  • Observer
  • State

There are other patterns which can be useful to know, and which can deepen the understanding a developer has of the value and nature of patterns overall. Once the list above is mastered, we suggest the following are good patterns to focus on:

  • Visitor
  • Flyweight
  • Builder