Design Patterns are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.
Classification of Patterns
3 main groups of patterns:
-
Creational patterns provide object creation mechanisms that increase flexibility and reuse of existing code
-
Structural patterns explain how to assemble objects and classes into larger structures, while keeping these structures flexible and efficient
-
Behavioral patterns take care of effective communication and the assignment of responsibilities between objects