Behavioral Patterns
Patterns that are concerned with algorithms and the assignment of responsibilities between objects.
11 patterns in this category
Chain of Responsibility
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.
Command
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
Interpreter
Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.
Iterator
Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
Mediator
Define an object that encapsulates how a set of objects interact.
Memento
Capture and externalize an object's internal state so that the object can be restored to this state later.
Observer
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
State
Allow an object to alter its behavior when its internal state changes.
Strategy
Define a family of algorithms, encapsulate each one, and make them interchangeable.
Template Method
Define the skeleton of an algorithm in an operation, deferring some steps to subclasses.
Visitor
Represent an operation to be performed on the elements of an object structure.