The handle whe can use to describe a design problem, its solution, and the consequences in a word or few.
When to apply the pattern. This can be:
- How to represent an algorithm as objects
- Class structures symtomatic to inflexible design
- List of conditions that must be met before it makes sense to use that particular pattern
Elements that make up the design, their relationships, responsibilities, and collaborations.
The solution provides an abstract description of a design problem and how a general arrangement of elements (classes and objects in our case) solves it.
The solution does NOT describe a particular implementation. It is a template that can be applied in may different situations.
The results and trade-offs of applying the pattern.
- Creational: Describe the process of object creation
- Structural: Composition of classes or objects
- Behavioral: Ways in which classes or objects interact and distributes responsibility
- Class
- Object