Design patterns are solutions to general problems that software developers faced during software development. There are three types of Design Patterns:
- Creational Design Patterns
- Structural Design Patterns
- Behavioral Design Patterns
Creational design patterns are concerned with the way of creating objects. These design patterns are used when a decision must be made at the time of instantiation of a class.
- Builder Pattern
- Factory Pattern
- Prototype Pattern
- Singleton Pattern
Structural design patterns are those that simplify the design of large object structures by identifying relationships between them. They describe common ways of composing classes and objects so that they become repeatable as solutions.
- Adapter Pattern
- Bridge Pattern
- Composite Pattern
- Decorator Pattern
- Facade Pattern
- Proxy Pattern
Behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.
- Chain Of Responsibility Pattern
- Command Pattern
- Iterator Pattern
- Mediator Pattern
- Observer Pattern
- State Pattern
- Strategy Pattern
- Template Pattern