These are a set of reusable solutions (templates) for solving the commonly reoccurring problems in programming. The idea is to speed up the development process and reduce post-production issues.
These are classified into 3 types:
Creational Design Pattern:
This pattern deals with class Instantiation. This can further be divided into class-creation patterns and object-creational patterns. While class-creation patterns use inheritance effectively for the instantiation process, object-creational patterns use delegation effectively for object creation.
- Abstract Factory
- Factory Method
Design Patterns can solve the below few problems
- Resource management (Load Balancing, Reduce Unnecessary Connections)
- Resolve incompatibility issues b/w classes or API’s
- Loose Coupling
- Code Reusability
- Reduce Development Time.