Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides are the authors of the book “Design Patterns: Elements of Reusable Object-Oriented Software”, they are known as the Gang of four. The book describes development techniques and provides 23 design patterns.
A design pattern is a general repeatable solution to a commonly occurring problem in software design. It is a template that can be used in different situations.
The patterns are clasified in three types:
- Creational: They are all about class instantiacion.
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Structural: They are all about class and object composition.
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Behavioral: They are all about class’s object communication.
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Source