Design patterns is an essential concept in software engineering. Every developer should know about Design patterns and how to apply these patterns in your project.
Design Patterns are solutions to some common software design problems. These problems are the recurring design problems that software developers often faced during the development. Design patterns describes a particular problem, its solution, when to apply the solution and its solution benefits.
There are 23 design patterns. They are divided into three categories:
- Creational
- Structural
- Beavioral
Creational Patterns
Creational patterns control the Object Creation. They don’t let you instantiate the object directly. They abstract the object creation logic and give you an object that is suitable for particular situation.
There are five creational patterns.
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Singleton
Structural Patterns
Structural Patterns describe ways to compose large structure of classes and objects.
There are six structural patterns.
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Proxy
Behavioral Patterns
Behavioral patterns describe the ways to communicate the messages between objects.
There are twelve behavioral patterns.
- Interpreter
- Template Method
- Chain of Responsibility
- Command
- Iterator
- Mediator
- Memento
- Flyweight
- Observer
- State
- Strategy
- Visitor