Structural pattern
Appearance
A structural pattern is a software design pattern that encapsulates relationships between entities.
Examples
[edit]Examples include:
- Adapter pattern
- Adapts one interface for a class into one that a client expects.
- 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
- Supports adding additional functionality to an object at runtime. Prevents issue where subclassing would result in an exponential rise of new classes.
- Extensibility pattern
- a.k.a. framework, Hides complex code behind a simple interface.
- Facade pattern
- Creates 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 interface 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
[edit]References
[edit]Wikimedia Commons has media related to Structural software design patterns.
- ^ "Adapter Pipeline". Cunningham & Cunningham, Inc. 2010-12-31. Archived from the original on 2010-12-31. Retrieved 2012-07-20.
- ^ BobbyWoolf (2002-06-19). "Retrofit Interface Pattern". Cunningham & Cunningham, Inc. Archived from the original on 2002-06-19. Retrieved 2012-07-20.
- ^ MartinZarate (2010-12-31). "External Polymorphism". Cunningham & Cunningham, Inc. Archived from the original on 2010-12-31. Retrieved 2012-07-20.
- ^ "Tomb Stone". Cunningham & Cunningham, Inc. 2007-06-17. Archived from the original on 2007-06-17. Retrieved 2012-07-20.