A Patter is a soluction to a problem in a context.
-
The context, is the situation in witch the pattern applies. This should be a recurring situation.
-
The problem, refers to the goal you are trying to achieve in this context, but it also refers to any constraints that occur in the context.
-
The soluction, is what you're after: a general design tha anyone can apply which resolves the goal and set of constraints.
Patterns into categories:
Creational: Involve object instantiation and all provide a way to decouple a client from the objects it needs to instantiate.
- Singleton
- Builder
- Prototype
- Abstract Fatory
- Factory Method
- Decorator
- Composite
- Flyweight
- Adapter
- Bridge
- Facade
- Proxy
- Template Method
- Command
- Iterator
- Observer
- Strategy
- State
- Chain of Responsibility
- Mememnto
- Mediator
- Visitor