A design pattern is a solution to a commonly occurring problem. The design patterns are not a finished solution. It is a template for “how to solve a design problem?”. The design patterns are the language and implementation independent.
In the process of developing Object-Oriented Systems, we have two phases.
- Object Oriented Analysis(OOA) – Addresses the functional challenges of a system and mainly focuses on “what the system does?”.OOA provides guidance for implementation.
- Object-Oriented Design(OOD) – Addresses the implementation challenges and mainly focuses on “how the system does?”
The design patterns are classified into three categories.
Creational – concerns with the creation process of objects & classes
Structural – composition of classes & objects
Behavioral – characterizes interaction & responsibility of objects & classes
In the coming days, we will discuss each design pattern in detail.