|
Proxy
|
|
|
Provide a surrogate or placeholder for another object to control access to it. |
|
|
Use sharing to support large numbers of fine-grained objects efficiently. |
|
|
Provide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use. |
|
|
Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. |
|
|
Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. |
|
|
Decouple an abstraction from its implementation so that the two can vary independently. |
|
|
Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces. |
