Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Browse By

All Software Design Patterns

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.

All Software Design Patterns
Filter Results22 entries
Sources
Wikipedia: Singleton Pattern
Wikimedia FoundationHas Member: Singleton Pattern, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, 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, Lead
Quote, Has Member: Visitor Pattern, Lead
A visitor pattern is a software design pattern that separates the algorithm from the object structure.
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.