Design patterns can typically be grouped into categories.
Categories Creational
, Structural
and Behavioral
are sometimes referred to as Gamma Categorization
which was named after Erich Gamma, one of the Gang of Four Authors. I found the Udemy Course by Dmitri Nesteruk hugely helpful in understanding these and other patterns.
*posts to be fleshed out with examples
Cloud Distributed Patterns
Creational Patterns
Deal with the creation (construction) of objects either explicit (constructor) or implicit (Dependency Injection, reflection ect). Some are wholesale (single statement) and others are piecewise (step by step)
Structural Patterns
Concerned with the structure (IE: class members). Many are wrappers that mimic the underlying class interface. They generally stress the importance of good API design.
Other Structural Patterns
Behavioral Patterns
All different and don’t really follow a theme but there is some overlap. Most are generally unique in their approach solving a particular problem. It could however be said that Behavioral patterns
define manners of communication between classes and objects.
- Chain of Responsibility
- Command
- Interpreter *
- Iterator *
- Mediator * | Command and Query Responsibility Segregation (CQRS)
- Memento *
- Observer *
- State *
- Strategy *
- Template Method *
- Visitor *
Other Patterns
These are patterns that I dont know enough about to pop into a category and probably dont have a working understanding of.