Named, reusable solutions to recurring problems in the design of object-oriented software, most of them catalogued by the Gang of Four in the book Design Patterns. A pattern is a template for arranging classes and objects so that a program stays flexible, rather than a finished piece of code. Members range from patterns that control how objects are created, through patterns that compose classes into larger structures, to patterns that govern how objects communicate and share responsibility.
Browse By
Software Design Patterns
Filter Results22 entries
Sources
Wikipedia: Singleton Pattern
Wikimedia FoundationHas Member: Singleton Pattern, LeadQuote, Has Member: Singleton Pattern, Lead
In object-oriented programming, the singleton pattern is a software design pattern that restricts the instantiation of a class to a singular instance.
View the Source Wikipedia: Factory Method Pattern
Wikimedia FoundationHas Member: Factory Method Pattern, LeadQuote, Has Member: Factory Method Pattern, Lead
In object-oriented programming, the factory method pattern is a design pattern that uses factory methods to deal with the problem of creating objects without having to specify their exact classes.
View the Source Wikipedia: Abstract Factory Pattern
Wikimedia FoundationHas Member: Abstract Factory Pattern, LeadQuote, Has Member: Abstract Factory Pattern, Lead
The abstract factory pattern in software engineering is a design pattern that provides a way to create families of related objects without imposing their concrete classes, by encapsulating a group of individual factories that have a common theme without specifying their concrete classes.
View the Source Wikipedia: Builder Pattern
Wikimedia FoundationHas Member: Builder Pattern, LeadQuote, Has Member: Builder Pattern, Lead
The builder pattern is a design pattern that provides a flexible solution to various object creation problems in object-oriented programming.
View the Source Wikipedia: Prototype Pattern
Wikimedia FoundationHas Member: Prototype Pattern, LeadQuote, Has Member: Prototype Pattern, Lead
The prototype pattern is a creational design pattern in software development.
View the Source Wikipedia: Adapter Pattern
Wikimedia FoundationHas Member: Adapter Pattern, LeadQuote, Has Member: Adapter Pattern, Lead
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.
View the Source Wikipedia: Bridge Pattern
Wikimedia FoundationHas Member: Bridge Pattern, LeadQuote, Has Member: Bridge Pattern, Lead
The bridge pattern is a design pattern used in software engineering that is meant to "decouple an abstraction from its implementation so that the two can vary independently", introduced by the Gang of Four.
View the Source Wikipedia: Composite Pattern
Wikimedia FoundationHas Member: Composite Pattern, LeadQuote, Has Member: Composite Pattern, Lead
In software engineering, the composite pattern is a partitioning design pattern.
View the Source Wikipedia: Decorator Pattern
Wikimedia FoundationHas Member: Decorator Pattern, LeadQuote, Has Member: Decorator Pattern, Lead
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.
View the Source Wikipedia: Facade Pattern
Wikimedia FoundationHas Member: Facade Pattern, LeadQuote, Has Member: Facade Pattern, Lead
The facade pattern (also spelled façade) is a software design pattern commonly used in object-oriented programming.
View the Source Wikipedia: Flyweight Pattern
Wikimedia FoundationHas Member: Flyweight Pattern, LeadQuote, Has Member: Flyweight Pattern, Lead
In computer programming, the flyweight software design pattern refers to an object that minimizes memory usage by sharing some of its data with other similar objects.
View the Source Wikipedia: Proxy Pattern
Wikimedia FoundationHas Member: Proxy Pattern, LeadQuote, Has Member: Proxy Pattern, Lead
In computer programming, the proxy pattern is a software design pattern which is a class functioning as an interface to something else.
View the Source Wikipedia: Command Pattern
Wikimedia FoundationHas Member: Command Pattern, LeadQuote, Has Member: Command Pattern, Lead
In object-oriented programming, the command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time.
View the Source Wikipedia: Interpreter Pattern
Wikimedia FoundationHas Member: Interpreter Pattern, LeadQuote, Has Member: Interpreter Pattern, Lead
In computer programming, the interpreter pattern is a design pattern that specifies how to evaluate sentences in a language.
View the Source Wikipedia: Iterator Pattern
Wikimedia FoundationHas Member: Iterator Pattern, LeadQuote, Has Member: Iterator Pattern, Lead
In object-oriented programming, the iterator pattern is a design pattern in which an iterator is used to traverse a container and access the container's elements.
View the Source Wikipedia: Mediator Pattern
Wikimedia FoundationHas Member: Mediator Pattern, LeadQuote, Has Member: Mediator Pattern, Lead
In software engineering, the mediator pattern defines an object that encapsulates how a set of objects interact.
View the Source Wikipedia: Memento Pattern
Wikimedia FoundationHas Member: Memento Pattern, LeadQuote, Has Member: Memento Pattern, Lead
The memento pattern is a software design pattern in the field of object-oriented programming that allows reverting the state of an object.
View the Source Wikipedia: Observer Pattern
Wikimedia FoundationHas Member: Observer Pattern, LeadQuote, Has Member: Observer Pattern, Lead
In software design and software engineering, the observer pattern is a software design pattern in which an object, called the subject (also known as event source or event stream), maintains a list of its dependents, called observers (also known as event sinks), and automatically notifies them of any state changes, typically by calling one of their methods.
View the Source State pattern, Wikipedia
Has Member: State Pattern, LeadQuote, Has Member: State Pattern, Lead
The state pattern is a behavioral software design pattern that allows an object to alter its behavior when its internal state changes.
View the Source Strategy pattern, Wikipedia
Has Member: Strategy Pattern, LeadQuote, Has Member: Strategy Pattern, Lead
In computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software design pattern that enables selecting an algorithm at runtime.
View the Source Template method pattern, Wikipedia
Has Member: Template Method Pattern, LeadQuote, Has Member: Template Method Pattern, Lead
In object-oriented programming, the template method is one of the behavioral design patterns identified by Gamma et al. in the book Design Patterns.
View the Source Visitor pattern, Wikipedia
Has Member: Visitor Pattern, LeadQuote, Has Member: Visitor Pattern, Lead
A visitor pattern is a software design pattern that separates the algorithm from the object structure.
View the Source Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.
Sign in to dispute this or suggest a correction.