Examples include: ;
Adapter pattern: Adapts one interface for a class into one that a client expects. :; Adapter pipeline: Use multiple adapters for debugging purposes. :; Retrofit Interface Pattern: An adapter used as a new interface for multiple classes at the same time. ;
Aggregate pattern: A version of the
Composite pattern with methods for aggregation of children. ;
Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently. :; Tombstone: An intermediate lookup object contains the real location of an object. ;
Composite pattern: A tree structure of objects where every object has the same interface. ;
Decorator pattern: Supports adding additional functionality to an object at runtime. Prevents issue where subclassing would result in an exponential rise of new classes. ;
Extensibility pattern: a.k.a. framework, Hides complex code behind a simple interface. ;
Facade pattern: Creates a simplified interface of an existing interface to ease usage for common tasks. ;
Flyweight pattern: A large quantity of objects share a common properties object to save space. ;
Marker interface pattern: An empty interface to associate metadata with a class. ;
Pipes and filters: A chain of processes where the output of each process is the input of the next. ;
Opaque pointer: A pointer to an undeclared or private type, to hide implementation details. ;
Proxy pattern: A class functioning as an interface to another thing. ==See also==