Design patterns provide solutions to common software design problems. In the case of object-oriented programming, design patterns are generally aimed at solving the problems of object generation and interaction, rather than the larger scale problems of overall software architecture. They give generalised solutions in the form of templates that may be applied to real-world problems.
In the next series of articles we are going to be focus in the Gang of Four design patterns. They wrote a book called “Design Patterns: Elements of Reusable Object-Oriented Software”. The four authors are:
They included in their book thirty-three design patterns divided in three main categories:
- Creational patterns: Creational patterns provide ways to instantiate single objects or groups of related objects.
- Structural patterns: Structural patterns provide a manner to define relationships between classes or objects.
- Behavioral patterns: Behavioural patterns define manners of communication between classes and objects.
In the next articles we will go deeper in each one of the types and in the design patterns included in each one of the categories.