Classifying patterns
The book by GoF on design patterns spoke about 23 design patterns and classified them under three main categories:
- Creational patterns
- Structural patterns
- Behavioral patterns
The classification of patterns is done based primarily on how the objects get created, how classes and objects are structured in a software application, and also covers the way objects interact among themselves. Let's talk about each of the categories in detail in this section.
Creational patterns:
The following are the properties of Creational patterns:
- They work on the basis of how objects can be created
- They isolate the details of object creation
- Code is independent of the type of object to be created
An example of a creational pattern is the Singleton pattern.
Structural patterns
The following are the properties of Structural patterns:
- They design the structure of objects and classes so that they can compose to achieve larger results
- The focus is on simplifying the structure and identifying the relationship between classes and objects
- They focus on class inheritance and composition
An example of a behavior pattern is the Adapter pattern.
Behavioral patterns
The following are the properties of Behavioral patterns:
- They are concerned with the interaction among objects and responsibility of objects
- Objects should be able to interact and still be loosely coupled
An example of a behavioral pattern is the Observer pattern.