Category
page 1Software design patterns
Q7637
American computer programmer
software design pattern
reusable solution to a commonly occurring software problem
model–view–controller
right|200px|thumb|Diagram of interactions in MVC's Smalltalk-80 interpretation
black box
system where only the inputs and outputs can be viewed, and not its implementation
service-oriented architecture
architectural pattern in software design
singleton pattern
design pattern in object-oriented software development
factory method pattern
creational pattern that uses factory methods to deal with the problem of creating objects without having to specify the exact class of the object that will be created
decorator pattern
design pattern in object-oriented programming
facade pattern
software design pattern that provides a simplified interface
adapter pattern
design pattern in computer program
observer pattern
design pattern
abstract factory pattern
term in software development
bridge pattern
design pattern used in software engineering
command pattern
behavioral design pattern
composite pattern
design pattern in software engineering
strategy pattern
design pattern enabling selection of algorithms at runtime
scheduling
in computing, what carries out the scheduling activity
prototype pattern
creational design pattern in software development
flyweight pattern
software design pattern for objects which shares data with similar objects to minimize memory
dependency injection
technique in software engineering
builder pattern
design pattern designed to provide a flexible solution to various object creation problems in object-oriented programming
multitier architecture
computing system architecture that may typically have three tiers, composed of a presentation tier, a domain logic tier, and a data storage tier
proxy pattern
software design pattern
monad
design pattern in functional programming to build generic types
memento pattern
software design pattern that provides the ability to restore an object to its previous state
chain-of-responsibility pattern
programming pattern
state pattern
design pattern that allows an object to alter its behavior when its internal state changes, e.g. a strategy pattern, akin to finite-state machines
visitor pattern
design pattern
JavaBeans
In computing based on the Java Platform, JavaBeans is a technology developed by Sun Microsystems and released in 1996, as part of JDK 1.1.
mediator pattern
behavioral design pattern defining an object that encapsulates how a set of objects interact
template method pattern
behavioral design pattern in object-oriented programming which defines the high-level skeleton of an operation to be implemented by helper methods
interpreter pattern
approach in computer programming
monitor
in concurrent programming, an object or module intended to be used safely by more than one thread
lock
synchronization mechanism for enforcing limits on concurrent access to a resource
inversion of control
software programming technique in which general framework code calls into business-logic subroutines

Robert Cecil Martin
American software consultant (b. 1952)
active record pattern
design pattern for software that stores in-memory object data in relational databases, with interface functions for insert, update and delete, and properties corresponding to the columns in the underlying database table
data access object
design pattern providing an abstract interface to some type of database or other persistence mechanism, providing data operations to application calls without exposing database details
resource acquisition is initialization
programming idiom for resource management that ties access to a resource to an object's lifetime
iterator pattern
object-oriented design pattern using an iterator to traverse a container and access the container's elements
data transfer object
design pattern where an object carries aggregated data between processes to reduce number of calls needed
architectural pattern
a general, reusable solution to a commonly occurring problem in software engineering and architecture
mock object
type of software test double whose behavior is specified by the test
dependency inversion principle
principle that result in a specific form of decoupling of software modules that results in reversing of the dependency relationships established from high-level, policy-setting modules to low-level, dependency modules
object pool pattern
pattern to construct sets of initialised programming objects that are kept ready to use
Design Patterns
1994 software engineering book
software pipeline
chain of processing software elements
lazy loading
design pattern in computer programming
mixin
In object-oriented programming languages, a mixin (or mix-in) is a class that contains methods for use by other classes without having to be the parent class of those other classes. How those other classes gain access to the mixin's methods depends on the language. Mixins are sometimes described as being "included" rather than "inherited".
structural pattern
design pattern that eases the design by identifying a simple way to realize relationships between entities
creational pattern
software design pattern dealing with object creation
model–view–viewmodel
500px|right|upright=1.5
lazy initialization
Delaying a task until it is first needed
publish–subscribe pattern
messaging pattern in software design where publishers send messages in categories that subscribers listen to
Portland Pattern Repository
American software design pattern repository
null object pattern
object with no referenced value or with defined neutral ("null") behavior
behavioral pattern
type of software design pattern

model–view–presenter
thumb|Diagram that depicts the model–view–presenter (MVP) GUI design pattern
filter
computer program or subroutine to process a stream into another stream
message broker
software that intermediates messages between services or applications