behavioral pattern
{{short description|Type of software design pattern}}
In software engineering, behavioral design patterns are design patterns that identify common communication patterns among objects. By doing so, these patterns increase flexibility in carrying out communication.
Design patterns
Examples of this type of design pattern include:
: Provides a computational framework for the design and implementation of systems that integrate large and diverse specialized modules, and implement complex, non-deterministic control strategies
;Chain-of-responsibility pattern
: Command objects are handled or passed on to other objects by logic-containing processing objects
: Command objects encapsulate an action and its parameters
;"Externalize the stack"
: Turn a recursive function into an iterative function that uses a stack{{cite web
|url = http://c2.com/
|title = Externalize The Stack
|date = 2010-01-19
|publisher = c2.com
|archive-url = https://web.archive.org/web/20110303085751/http://c2.com/
|archive-date = 2011-03-03
|access-date = 2012-05-21
|url-status = bot: unknown
}}
: Implement a specialized computer language to rapidly solve a specific set of problems
: Iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation
: Provides a unified interface to a set of interfaces in a subsystem
: Provides the ability to restore an object to its previous state (rollback)
: Designed to act as a default value of an object
- Observer pattern
- a.k.a. Publish/Subscribe or Event Listener. Objects register to observe an event that may be raised by another object
- Weak reference pattern
- De-couple an observer from an observable{{cite web
|first = Ashod
|last = Nakashian
|url = http://c2.com/
|title = Weak Reference Pattern
|date = 2004-04-11
|publisher = c2.com
|archive-url = https://web.archive.org/web/20110303085751/http://c2.com/
|archive-date = 2011-03-03
|access-date = 2012-05-21
|url-status = bot: unknown
}}
: Communications are handled by multiple layers, which form an encapsulation hierarchy{{cite web
|url = http://c2.com/
|title = Protocol Stack
|date = 2006-09-05
|publisher = c2.com
|archive-url = https://web.archive.org/web/20110303085751/http://c2.com/
|archive-date = 2011-03-03
|access-date = 2012-05-21
|url-status = bot: unknown
}}
: A task is scheduled to be performed at a particular interval or clock time (used in real-time computing)
;Single-serving visitor pattern
: Optimise the implementation of a visitor that is allocated, used only once, and then deleted
: Recombinable business logic in a boolean fashion
: A clean way for an object to partially change its type at runtime
: Algorithms can be selected on the fly, using composition
: Describes the skeleton of a program; algorithms can be selected on the fly, using inheritance
: A way to separate an algorithm from an object