software design pattern
reusable solution to a commonly occurring software problem
proactor pattern
software design pattern for event handling in which long running activities are running in an asynchronous part, and a completion handler is called after the asynchronous part has terminated
return-oriented programming
computer security exploit technique that manipulates the call stack to hijack control flow
concurrency pattern
types of design patterns
expression template
C++ template technique to implement compile-time lazy evaluation of structures representing computations
module pattern
design pattern used to implement the concept of software modules, defined by modular programming, in a programming language with incomplete direct support for the concept
specification pattern
design pattern where business rules can be recombined by chaining them together using boolean logic, often used in domain-driven design
#include guard
construct in C and C++ for idempotent header inclusion
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
creational pattern
software design pattern dealing with object creation
reactor pattern
event handling pattern for handling service requests delivered concurrently to a service handler by one or more inputs; the service handler then demultiplexes the incoming requests and dispatches them synchronously to the associated request handlers
memento pattern
software design pattern that provides the ability to restore an object to its previous state
composition over inheritance
software design pattern
spreadsheet function
feature of spreadsheet applications
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
singleton pattern
design pattern in object-oriented software development
interceptor pattern
design pattern to allow systems or frameworks a way to change or augment their usual processing cycle, for example by replacing or inserting a new step
Pipes and Filter
Architectural Design pattern
separation of presentation and content
concept in technology design
Strangler fig pattern
computer science architectural pattern
data transfer object
design pattern where an object carries aggregated data between processes to reduce number of calls needed
Context management
dynamic computer process design pattern
bulkhead
stability pattern
hexagonal architecture
software design pattern
mock object
type of software test double whose behavior is specified by the test
inversion of control
software programming technique in which general framework code calls into business-logic subroutines
behavioral pattern
type of software design pattern
General responsibility assignment software patterns
Guidelines in object-oriented design
binding properties pattern
concurrency design pattern combining multiple observers to force properties in different objects to be synchronized or coordinated
twin pattern
software engineering design to simulate multiple inheritance
structural pattern
design pattern that eases the design by identifying a simple way to realize relationships between entities
monad
design pattern in functional programming to build generic types
Post/Redirect/Get
web development design pattern to avoid duplicate form submissions
factory
design pattern in object-oriented programming
test double
computing object that substitutes for another object for use in testing
dependency injection
technique in software engineering
architectural pattern
a general, reusable solution to a commonly occurring problem in software engineering and architecture
differentiated service
design pattern for business services and software
security pattern
design pattern that fulfills an information security goal, such as confidentiality, integrity, or availability
decorator pattern
design pattern in object-oriented programming
front controller
design pattern for web applications which handles all requests for a website and thereby provide flexibility and reuse without code redundancy
data binding
software technique of binding and synchronizing producer and consumer data sources that differ in language or function
lazy loading
design pattern in computer programming
value object
object that represents a simple entity whose equality is not based on identity
repository
design pattern in software development