Design Patterns
Structural Patterns
Pattern Name Usage
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.