Structural Design Patterns
  • explain how to assemble objects and classes into larger structures, while keeping these structures flexible and efficient

Structural Design Patterns

Wrapper Patterns

Proxy Pattern

  • intent - to provide a surrogate/placeholder for another object to control access, defer creation, or add extra behavior

Adapter Pattern

  • intent - convert one interface into another that the client expects

Decorator (Wrapper - Smart Proxy) Pattern

  • intent - add behavior to an object dynamically without modifying its class

Facade Pattern

  • intent - provide a simple interface to a complex subsystem

Bridge Pattern

  • intent - to decouple an abstraction/interface from its implementation so that the two can vary independently (uses dependency injection)

Dependency Injection (DI)

  • intent - to decouple objects from their dependencies by providing those dependencies from the outside rather than having the objects construct them themselves

Composite Pattern - Object Tree Pattern

  • intent - to create uniform treatment of single objects and groups