Design Patterns

Patterns help to have reusable solutions to common problems that occur in software design. These patterns provide a template or blueprint for solving a particular problem in a specific context. They help developers avoid reinventing the wheel.

Categories of Design Patterns

1- Creational Patterns: Deal with object creation mechanisms, trying to create objects in a manner suitable to the situation.

2- Structural Patterns: Deal with object composition or the structure of classes and objects.

3- Behavioral Patterns: Deal with object collaboration and the delegation of responsibilities.