Behavioral patterns are concerned with the assignment of responsibilities between objects, or, encapsulating behavior in an object and delegating requests to it.
In these design patterns, the interaction between the objects should be in such a way that they can easily talk to each other and still should be loosely coupled.
That means the implementation and the client should be loosely coupled in order to avoid hard coding and dependencies.
Design Pattern | Summary |
---|---|
Callback | A way to pass a set of statements to execute as an argument |
Chain of Responsibility | A way of passing a request between a chain of objects |
Command | Encapsulate a command request as an object |
Delegation | Delegates responsibility for implementing that behaviour to an associated object |
Interpreter | A way to include language elements in a program |
Iterator | Sequentially access the elements of a collection |
Mediator | Defines simplified communication between classes |
Memento | Capture and restore an object's internal state |
NullObject | Designed to act as a default value of an object |
Observer | A way of notifying change to a number of classes |
State | Alter an object's behavior when its state changes |
Strategy | Encapsulates an algorithm inside a class |
TemplateMethod | Defer the exact steps of an algorithm to a subclass |
Visitor | Defines a new operation to a class without change |