Updated 18/09/2023
I have put these into groups cloud design patterns
, code design patterns
and other patterns
Cloud Design Patterns
- Asynchronous Request Reply Pattern
- Circuit Breaker Pattern (MS Docs, AWS Docs)
- Valet Key
Code Design Patterns
Based on the Gang of Four Authors, Code 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.
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 *
References
- https://www.udemy.com/course/design-patterns-csharp-dotnet/
- https://www.pluralsight.com/courses/patterns-library
- http://www.blackwasp.co.uk/gofpatterns.aspx
Other Patterns
These are patterns that I dont know enough about to pop into a category and probably dont have a working understanding of.