Software design pattern

The InSight lander with solar panels deployed in a cleanroom

General, reusable solution to a commonly occurring problem within a given context in software design.

- Software design pattern

80 related topics


Object (computer science)

Object can be a variable, a data structure, a function, or a method.

Charles Babbage, sometimes referred to as the "father of computing".

An important concept for objects is the design pattern.

Component-based software engineering

Branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system.

An example of two components expressed in UML 2.0. The checkout component, responsible for facilitating the customer's order, requires the card processing component to charge the customer's credit/debit card (functionality that the latter provides).
A simple example of several software components - pictured within a hypothetical holiday-reservation system represented in UML 2.0.

Component-based software engineering builds on prior theories of software objects, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and the object-oriented design of all these.

Design Patterns

About the book.

Design Patterns: Elements of Reusable Object-Oriented Software (1994) is a software engineering book describing software design patterns.

Kent Beck

American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process.

Kent Beck speaking in 2001

Beck pioneered software design patterns, as well as the commercial application of Smalltalk.

Ward Cunningham

American computer programmer who developed the first wiki and was a co-author of the Manifesto for Agile Software Development.

Cunningham in December 2011
Cunningham in October 2011

The most famous among these are the wiki and many ideas in the field of software design patterns, made popular by the Gang of Four (GoF).

Pattern language

Organized and coherent set of patterns, each of which describes a problem and the core of a solution that can be used in many ways within a specific field of expertise.

Alexander in 2012

Examples since the 1990s include software design patterns in software engineering and, more generally, architectural patterns in computer science, as well as interaction design patterns.

Pattern Languages of Programs

Name of a group of annual conferences sponsored by The Hillside Group.

The purpose of these conferences is to develop and refine the art of software design patterns.

Portland Pattern Repository

The homepage of the WikiWikiWeb in 2003

The Portland Pattern Repository (PPR) is a repository for computer programming software design patterns.

Adapter pattern

A sample UML class diagram for the adapter design pattern.
The object adapter pattern expressed in UML
The object adapter pattern expressed in LePUS3
The class adapter pattern expressed in UML.
The class adapter pattern expressed in LePUS3

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.

Singleton pattern

A class diagram exemplifying the singleton pattern.

In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one "single" instance.