GofPatterns Gofpatterns  

Creational Patterns  «Prev  Next»

Structural Design Patterns

In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships between entities.
Structural patterns are for tying together existing function.
Examples of Structural Patterns include:

  1. Adapter: Adapts one interface for a class into one that a client expects
  2. Bridge: Decouple an abstraction from its implementation so that the two can vary independently
  3. Composite: A tree structure of objects where every object has the same interface
  4. Decorator : Add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes
  5. Facade: Create a simplified interface of an existing interface to ease usage for common tasks
  6. Flyweight: A high quantity of objects share a common properties object to save space
  7. Proxy: A class functioning as an interface to another thing


  1. Aggregate: A version of the Composite pattern with methods for aggregation of children
  2. Extensibility: also known as Framework - hide complex code behind a simple interface
  3. Pipes and filters: A chain of processes where the output of each process is the input of the next
  4. Private class data: Restrict accessor/mutator access

Design phase

The phase of a software project that concerns itself with the discovery of the structural components of the software system to be built, not with implementation details.