Software design pattern
reusable solution to a commonly occurring software problem
behavioral pattern
publish–subscribe pattern
concurrency pattern
Reactor pattern
memento pattern
General responsibility assignment software patterns
monad
data transfer object
Head–body pattern
resource acquisition is initialization
composition over inheritance
State pattern
decorator pattern
twin pattern
bulkhead
Post/Redirect/Get
separation of presentation and content
Context management
debugging patterns
differentiated service
factory
#include guard
Mock object
structural pattern
dependency injection
architectural pattern
lazy loading
inversion of control
module pattern
security pattern
singleton pattern
Specification pattern
template method pattern
value object