Structural Patterns

Structural Patterns deal with object composition, trying to realize new functionality by composing objects in various ways.

Some Common Structural Design Patterns

1- Adapter: Allows objects with incompatible interfaces to work together by wrapping their own interface around that of an already existing class.

2- Bridge: Decouples an abstraction from its implementation so that the two can vary independently.

3- Composite: Composes objects into tree structures to represent part-whole hierarchies, allowing clients to treat individual objects and compositions uniformly.

4- Decorator: Adds additional responsibilities to an object dynamically, providing a flexible alternative to subclassing for extending functionality.

5- Facade: Provides a simplified interface to a complex subsystem, making it easier to use.

6- Flyweight: Reduces the cost of creating and manipulating a large number of similar objects by sharing as much data as possible.

7- Proxy: Provides a surrogate or placeholder for another object to control access to it.