| Adapter |
Converts the interface of a class into another interface the client expects, enabling classes to work together that couldn’t otherwise because of incompatible interfaces. |
| Bridge |
Decouples an abstraction from its implementation so that the two can vary independently.
|
| Composite |
Composes objects into tree structures to represent part-whole hierarchies, allowing clients to treat individual objects and compositions of objects uniformly. |
| Decorator |
Adds additional responsibilities to an object dynamically. |
| Facade |
Provides a simplified interface to a complex subsystem.
|
| Flyweight |
Reduces the cost of creating and manipulating a large number of similar objects by sharing objects. |
| Proxy |
Provides a surrogate or placeholder for another object to control access to it. |