Establishes relations b/w entities. Making it easier for different components of an application to interact with each other.
Adapter Pattern : Interfaces of classes vary depending on requirement.
Bridge Pattern : class level abstraction is seperated from its implementations.
Composite : Individual and group objects are treated similarly.
Decorator : Functionality is assigned to an object.
Facade : common interface is shared b/w diff interface to have similarity.
Flyweight : sharing a group of small objects.
Proxy pattern : when objects are complex and need to be shared, its copies are made.