Structural pattern


title: "Structural pattern" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["software-design-patterns", "articles-with-example-java-code", "articles-with-example-c-sharp-code"] topic_path: "technology/software-engineering" source: "https://en.wikipedia.org/wiki/Structural_pattern" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

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. :; Adapter pipeline: Use multiple adapters for debugging purposes.{{cite web | url = http://c2.com/ | title = Adapter Pipeline | date = 2010-12-31 | publisher = Cunningham & Cunningham, Inc. | archive-url = http://c2.com/cgi/wiki?AdapterPipeline | archive-date = 2010-12-31 | access-date = 2012-07-20 :; Retrofit Interface Pattern: An adapter used as a new interface for multiple classes at the same time.{{cite web | url = http://c2.com/ | title = Retrofit Interface Pattern | author = BobbyWoolf | date = 2002-06-19 | publisher = Cunningham & Cunningham, Inc. | archive-url = http://c2.com/cgi/wiki?RetrofitInterfacePattern | archive-date = 2002-06-19 | access-date = 2012-07-20 | url = http://c2.com/ | title = External Polymorphism | author = MartinZarate | date = 2010-12-31 | publisher = Cunningham & Cunningham, Inc. | archive-url = http://c2.com/cgi/wiki?ExternalPolymorphism | archive-date = 2010-12-31 | access-date = 2012-07-20 ; 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.{{cite web | url = http://c2.com/ | title = Tomb Stone | date = 2007-06-17 | publisher = Cunningham & Cunningham, Inc. | archive-url = http://c2.com/cgi/wiki?AdapterPipeline | archive-date = 2007-06-17 | access-date = 2012-07-20 ; 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.

References

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

software-design-patternsarticles-with-example-java-codearticles-with-example-c-sharp-code