Structural pattern: Difference between revisions
Jump to navigation
Jump to search
imported>Pancho507 →See also: add Abstract Document Pattern |
imported>Stevebroshar →Examples: Less bullets; more objective wording |
||
| Line 1: | Line 1: | ||
A '''structural pattern''' is a [[software design pattern]] that encapsulates relationships between entities. | |||
Examples | ==Examples== | ||
Examples include: | |||
; [[Adapter pattern]]: Adapts one interface for a class into one that a client expects. | |||
:; Adapter pipeline: Use multiple adapters for debugging purposes.<ref>{{cite web | |||
| url = http://c2.com/ | | url = http://c2.com/ | ||
| title = Adapter Pipeline | | title = Adapter Pipeline | ||
| Line 13: | Line 14: | ||
| access-date = 2012-07-20 | | access-date = 2012-07-20 | ||
}}</ref> | }}</ref> | ||
:; Retrofit Interface Pattern: An adapter used as a new interface for multiple classes at the same time.<ref>{{cite web | |||
| url = http://c2.com/ | | url = http://c2.com/ | ||
| title = Retrofit Interface Pattern | | title = Retrofit Interface Pattern | ||
| Line 31: | Line 32: | ||
| archive-date = 2010-12-31 | | archive-date = 2010-12-31 | ||
| access-date = 2012-07-20 | | access-date = 2012-07-20 | ||
}}</ref> | }}</ref> | ||
; [[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.<ref>{{cite web | |||
| url = http://c2.com/ | | url = http://c2.com/ | ||
| title = Tomb Stone | | title = Tomb Stone | ||
| Line 43: | Line 44: | ||
| access-date = 2012-07-20 | | access-date = 2012-07-20 | ||
}}</ref> | }}</ref> | ||
; [[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== | ==See also== | ||
* [[Behavioral pattern]] | * [[Behavioral pattern]] | ||
* [[Concurrency pattern]] | * [[Concurrency pattern]] | ||
Latest revision as of 15:40, 15 December 2025
A structural pattern is a software design pattern that encapsulates relationships between entities.
Examples
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
References
<templatestyles src="Reflist/styles.css" />
Script error: No such module "Check for unknown parameters".