Behavioral
Patterns that focus on communication between objects, defining how objects interact and distribute responsibility.
Core Patterns
10
Implementations
20
Avg. Reliability
—
Coming SoonChain of Responsibility
Passes a request along a chain of handlers, where each handler decides to process it or pass it to the next handler in the chain.
Observer
Defines a one-to-many dependency so that when one object changes state, all its dependents are notified and updated automatically.
Strategy
Defines a family of algorithms, encapsulates each one, and makes them interchangeable so the algorithm can vary independently from the clients that use it.
Command
Encapsulates a request as an object, allowing you to parameterize clients, queue or log requests, and support undoable operations.
State
Allows an object to alter its behavior when its internal state changes, appearing as if the object has changed its class.
Template Method
Defines the skeleton of an algorithm in a base class, deferring certain steps to subclasses without changing the algorithm's overall structure.
Iterator
Provides a way to sequentially access elements of a collection without exposing its underlying representation.
Mediator
Defines an object that encapsulates how a set of objects interact, promoting loose coupling by keeping objects from referring to each other explicitly.
Memento
Captures and externalizes an object's internal state without violating encapsulation, allowing the object to be restored to that state later.
Visitor
Lets you add new operations to an object structure without modifying the objects themselves, by separating the algorithm from the object structure it operates on.