Structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities and are responsible for building simple and efficient class hierarchies between different classes.
Examples of Structural Patterns include:
1.**Adapter pattern**: 'adapts' one interface for a class into one that a client expects.
2.**Adapter pipeline**: Use multiple adapters for debugging purposes.
3.**Retrofit Interface Pattern**: An adapter used as a new interface for multiple classes at the same time.
4.**Aggregate pattern**: a version of the Composite pattern with methods for aggregation of children.
5.**Bridge pattern**: decouple an abstraction from its implementation so that the two can vary independently.
6.**Tombstone**: An intermediate "lookup" object contains the real location of an object.
7.**Composite pattern**: a tree structure of objects where every object has the same interface.
8.**Decorator pattern**: add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes.