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.