Structural pattern

From Justapedia, unleashing the power of collective wisdom
Jump to navigation Jump to search

In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships among entities.

Examples of Structural Patterns include:

  • Adapter pattern: 'adapts' one interface for a class into one that a client expects
    • Adapter pipeline: Use multiple adapters for debugging purposes.[1]
    • Retrofit Interface Pattern:[2][3] An adapter used as a new interface for multiple classes at the same time.
  • Aggregate pattern: a version of the Composite pattern with methods for aggregation of children
  • Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently
    • Tombstone: An intermediate "lookup" object contains the real location of an object.[4]
  • Composite pattern: a tree structure of objects where every object has the same interface
  • Decorator pattern: add additional functionality to an object at runtime where subclassing would result in an exponential rise of new classes
  • Extensibility pattern: a.k.a. Framework - hide complex code behind a simple interface
  • Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks
  • Flyweight pattern: a large quantity of objects share a common properties object to save space
  • Marker pattern: an empty interface to associate metadata with a class.
  • Pipes and filters: a chain of processes where the output of each process is the input of the next
  • Opaque pointer: a pointer to an undeclared or private type, to hide implementation details
  • Proxy pattern: a class functioning as an interface to another thing

See also

References

  1. ^ "Adapter Pipeline". Cunningham & Cunningham, Inc. 2010-12-31. Archived from the original on 2010-12-31. Retrieved 2012-07-20.
  2. ^ BobbyWoolf (2002-06-19). "Retrofit Interface Pattern". Cunningham & Cunningham, Inc. Archived from the original on 2002-06-19. Retrieved 2012-07-20.
  3. ^ MartinZarate (2010-12-31). "External Polymorphism". Cunningham & Cunningham, Inc. Archived from the original on 2010-12-31. Retrieved 2012-07-20.
  4. ^ "Tomb Stone". Cunningham & Cunningham, Inc. 2007-06-17. Archived from the original on 2007-06-17. Retrieved 2012-07-20.