Structural design patterns describe how types can be combined to form larger structures. These larger structures can generally be easier to work with, and hide a lot of the complexity of the individual types. Most patterns in the structural pattern category involve connections between objects.
There are seven well-known patterns that are part of the structural design pattern type. These are as follows:
- Adapter: This allows types with incompatible interfaces to work together
 - Bridge: This is used to separate the abstract elements of a type from the implementation, so the two can vary
 - Composite: This allows us to treat a group of objects as a single object
 - Decorator: This lets us add or override behavior in an existing method of an object
 - Facade: This provides a simplified interface for a larger and more complex body of code
 - Flyweight: This allows us to...