Design patterns
As we said, SOLID principles are beyond any specific consideration on how to resolve a certain coding problem and even beyond languages or paradigms. However, before Robert Martin defined these principles, other patterns were already in use related to very distinct aspects of coding and structuring applications.
In real life, a class can use one or more patterns, making it diffuse the boundary between the two. Additionally, you can begin to use a simple pattern and evolve into other more complex patterns depending on the needs of our application.
In 1995, Eric Gamma, Richard Helm, Ralph Johnson, and John Vlissides (since then, the Gang of Four or GoF for short) published a book that has remained a reference point: Design Patterns: Elements of Reusable Object-Oriented Software.
The authors analyze a total of 23 design patterns applicable in different coding scenarios in order to solve different coding problems.
They divide the 23 patterns into three categories:
Creational: It...