Overview of Design Patterns

A comprehensive guide to the top 20 design patterns in software engineering, categorized by their purpose.

Pattern Categories

Category Pattern Purpose
CreationalSingletonSingle instance control
Factory MethodObject creation via interface
Abstract FactoryFamilies of related objects
BuilderStep-by-step object construction
PrototypeClone-based instantiation
StructuralAdapterInterface compatibility
BridgeDecouple abstraction from implementation
CompositeTree-like object structures
DecoratorDynamic behavior addition
FacadeSimplified subsystem interface
FlyweightMemory optimization via sharing
ProxyControlled object access
BehavioralObserverState change notification
StrategyAlgorithm interchangeability
CommandRequest encapsulation
Template MethodAlgorithm skeleton
MediatorObject interaction mediation
Chain of ResponsibilityRequest passing chain
StateState-dependent behavior
VisitorOperation separation from structure

Detailed Patterns