In Software Design- Design Patterns are reusable solutions to commonly occurring problems. The word “pattern” means if similar kind of problem occurs across multiple applications/in different situations, then this problem can be solved in a standard way. Each Design Pattern concentrates on a particular aspect of the problem.
Each Pattern consists of the following-
- The pattern name
- The Problem & Conditions to which it may be applied
- The Solution
- The Consequences
According to the uses and purposes Design Patterns are categorized into 3 areas.
- Creational Design Pattern- Handles the class object creation process or class instantiation
- Behavioral Design Pattern- Focuses on the object behavior and responsibility
- Structural Design Pattern- Focuses on the structure of different objects
Creational Patterns | Behavioral Patterns | Structural Patterns |
Singleton | Chain of Responsibility | Adapter(Object/Class) |
Simple Factory | Command | Bridge |
Factory Method | Interpreter | Composite |
Abstract Factory | Iterator | Decorator |
Builder | Mediator | Facade |
Prototype | Momento | Flyweight |
Observer | Proxy | |
State | ||
Strategy | ||
Visitor | ||
Template |