| Pattern name | Solves what problem? |
|---|---|
| Delegation | Defers implementatian af a methad ta a data member |
| Template method | Defers implementation of part of a method to a subclass |
| Iterator | Encapsulates traversal of a collection |
| Singleton | Ensures that on I y a single instance of a class exists |
| Proxy | Provides an extra level of indirection in an interface |
| Façade | Provides a single interface object to many implementation objects |
| Adapter | Converts one interface object to a different implementation object |
| Bridge | Decouples an interface object from its implementation object |
| Composite | Interfaces to objects that may be simple or nested composites |
| Observer | Keeps objects and dependent views consistent |
| Mediator | Provides an interface object to mediate interaction |
| Command | Encapsulates a request as an object |
| Chain of responsibility | Decouples senders from request receivers |
| Visitor | Applies various algorithms to object hierarchies |
| Prototype | Clones objects |
| Builder | Builds composite objects with different representations |
| Factory method | Defers instantiation to subclasses |
| Abstract factory | Creates families of objects of varying subclasses |
| Memento | Saves and restores an object's state |
| Flyweight | Allows many objects to share state efficiently |
| Strategy | Encapsulates an operation as an object |
| Interpreter | Inputs analysis and language processing |
| State | Allows objects to appear to change their state |
| Decorator | Adds properties and operations to objects dynamically |
|
Purpose
|
||||
|
Creational
|
Structural
|
Behavioural
|
||
|
Scope
|
Class (static) |
Factory Method | Adapter (class) | Interpreter |
| Template Method | ||||
| Object (dynamic) | Abstract Factory | Adapter (object) | Chain of Respnsability | |
| Builder | Bridge | Command | ||
| Prototype | Composite | Iterator | ||
| Singleton | Decorator | Mediator | ||
| Façade | Memento | |||
| Observer | ||||
| State | ||||
| Strategy | ||||
| Visitor | ||||
Application-based pattern classification
|
General
|
Interface
|
Views and Controllers
|
Database and persistence
|
Table-driven Control
|
Roles
|
| Delegation | Proxy | Observer | Prototype | Interpreter | State |
| Template Method | Façade | Mediator | Builder | Strategy | Decorator |
| Iterator | Adapter | Command | Factory Method | ||
| Singleton | Bridge | Chain of Reponsability | Abstract Factory | ||
| Composite | Visitor | Memento | |||
| Flyweight |