HOME

TheInfoList



OR:

In
software engineering Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
, structural design patterns are
design patterns ''Design Patterns: Elements of Reusable Object-Oriented Software'' (1994) is a software engineering book describing software design patterns. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, with a fore ...
that ease the design by identifying a simple way to realize relationships among entities. Examples of Structural Patterns include: *
Adapter pattern In software engineering, the adapter pattern is a software design pattern (also known as wrapper, an alternative naming shared with the decorator pattern) that allows the interface of an existing class to be used as another interface. It is oft ...
: 'adapts' one interface for a class into one that a client expects ** Adapter pipeline: Use multiple adapters for debugging purposes. ** Retrofit Interface Pattern: An adapter used as a new interface for multiple classes at the same time. * Aggregate pattern: a version of the
Composite pattern In software engineering, the composite pattern is a partitioning design pattern (computer science), design pattern. The composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. Th ...
with methods for aggregation of children *
Bridge pattern The bridge pattern is a software design pattern, design pattern used in software engineering that is meant to ''"decouple an Abstraction (computer science), abstraction from its implementation so that the two can vary independently"'', introduced b ...
: 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. *
Composite pattern In software engineering, the composite pattern is a partitioning design pattern (computer science), design pattern. The composite pattern describes a group of objects that are treated the same way as a single instance of the same type of object. Th ...
: a tree structure of objects where every object has the same interface *
Decorator pattern In object-oriented programming, the decorator pattern is a design pattern that allows behavior to be added to an individual object, dynamically, without affecting the behavior of other instances of the same class. The decorator pattern is often ...
: 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 The facade pattern (also spelled ''façade'') is a software design pattern commonly used in object-oriented programming. Analogous to a façade in architecture, it is an object that serves as a front-facing interface masking more complex underlying ...
: create a simplified interface of an existing interface to ease usage for common tasks *
Flyweight pattern In computer programming, the flyweight software design pattern refers to an Object (computer science), object that minimizes Computer memory, memory usage by sharing some of its data with other similar objects. The flyweight pattern is one of twe ...
: 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 In software engineering, a pipeline consists of a chain of processing elements ( processes, threads, coroutines, functions, ''etc.''), arranged so that the output of each element is the input of the next. The concept is analogous to a physical ...
: a chain of processes where the output of each process is the input of the next *
Opaque pointer In computer programming, an opaque pointer is a special case of an opaque data type, a data type declared to be a pointer to a record or data structure of some unspecified type. Opaque pointers are present in several programming languages inclu ...
: 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

* Abstract Document Pattern *
Behavioral pattern In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects. By doing so, these patterns increase flexibility in carrying out communication. Design patterns Examples of this t ...
*
Concurrency pattern In software engineering, concurrency patterns are those types of design patterns that deal with the multi-threaded programming paradigm. Examples of this class of patterns include: * Active object * Balking pattern * Barrier * Double-check ...
*
Creational pattern In software engineering, creational design patterns are design patterns that deal with object creation Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not ex ...


References

{{DEFAULTSORT:Structural Pattern Software design patterns Articles with example Java code Articles with example C Sharp code