"Design patterns" redirects here. For the book, see Design Patterns.
This article is about a relatively general design concept. For application for software development, see Software design pattern.
A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander[1] and has been adapted for various other disciplines, particularly software engineering.[2]
^Alexander, Christopher (1977). A Pattern Language: Towns, Buildings, Construction. Center for Environmental Structure series. Vol. 2. New York: Oxford University Press. ISBN 0-19-501919-9. OCLC 3132495.
^Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley professional computing series. Reading, Mass.: Addison-Wesley. ISBN 0-201-63361-2. OCLC 31171684. The "Gang of Four" book.
A designpattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted...
In software engineering, a designpattern describes a relatively small, well-defined aspect (i.e. functionality) of a computer program in terms of how...
DesignPatterns: Elements of Reusable Object-Oriented Software (1994) is a software engineering book describing software designpatterns. The book was...
A visitor pattern is a software designpattern that separates the algorithm from the object structure. Because of this separation, new operations can be...
Factory Method designpattern is one of twenty-three well-known designpatterns that describe how to solve recurring design problems to design flexible and...
A pattern is a regularity in the world, in human-made design, or in abstract ideas. As such, the elements of a pattern repeat in a predictable manner....
engineering, the adapter pattern is a software designpattern (also known as wrapper, an alternative naming shared with the decorator pattern) that allows the...
In software design and engineering, the observer pattern is a software designpattern in which an object, named the subject, maintains a list of its dependents...
computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software designpattern that enables selecting an algorithm...
The facade pattern (also spelled façade) is a software designpattern commonly used in object-oriented programming. Analogous to a façade in architecture...
In object-oriented programming, the decorator pattern is a designpattern that allows behavior to be added to an individual object, dynamically, without...
pattern is a software designpattern that restricts the instantiation of a class to a singular instance. One of the well-known "Gang of Four" design patterns...
Interaction designpatterns are designpatterns applied in the context human-computer interaction, describing common designs for graphical user interfaces...
A dark pattern (also known as a "deceptive designpattern") is "a user interface that has been carefully crafted to trick users into doing things, such...
In computer programming, the proxy pattern is a software designpattern. A proxy, in its most general form, is a class functioning as an interface to something...
engineering, behavioral designpatterns are designpatterns that identify common communication patterns among objects. By doing so, these patterns increase flexibility...
reactor software designpattern is an event handling strategy that can respond to many potential service requests concurrently. The pattern's key component...
The builder pattern is a designpatterndesigned to provide a flexible solution to various object creation problems in object-oriented programming. The...
In software engineering, the composite pattern is a partitioning designpattern. The composite pattern describes a group of objects that are treated the...
Circuit breaker is a designpattern used in software development. It is used to detect failures and encapsulates the logic of preventing a failure from...
The abstract factory pattern in software engineering is a designpattern that provides a way to create families of related objects without imposing their...
template method is one of the behavioral designpatterns identified by Gamma et al. in the book DesignPatterns. The template method is a method in a superclass...
state pattern is a behavioral software designpattern that allows an object to alter its behavior when its internal state changes. This pattern is close...
with a specific DBMS (the implementation of the DAO). Although this designpattern is applicable to most programming languages, most software with persistence...
In object-oriented programming, the command pattern is a behavioral designpattern in which an object is used to encapsulate all information needed to...