Matches interfaces of different classes
Adapter
Separates an object’s interface from its implementation
Bridge
A tree structure of simple and composite objects
Composite
Add responsibilities to objects dynamically
Decorator
A single class that represents an entire subsystem
Facade
A fine-grained instance used for efficient sharing
Flyweight
Restricts accessor/mutator access
Private Class Data
An object representing another object
Proxy