Behavioral pattern: Difference between revisions

Content deleted Content added
Format as definition list
Line 5:
Examples of this type of design pattern include:
 
* ;[[Blackboard design pattern]]
: providesProvides 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 pattern]]
: Command objects encapsulate an action and its parameters
* ;"Externalize the stack"
: Turn a [[Recursion (computer science)|recursive function]] into an [[iterative function]] that uses a [[call stack|stack]]<ref>{{cite web
| url = http://c2.com/
| title = Externalize The Stack
Line 17 ⟶ 21:
| access-date = 2012-05-21
}}</ref>
* ;[[Interpreter pattern]]
: Implement a specialized computer language to rapidly solve a specific set of problems
* ;[[Iterator pattern]]
: [[Iterator]]s are used to access the elements of an aggregate object sequentially without exposing its underlying representation
* ;[[Mediator pattern]]
: Provides a unified interface to a set of interfaces in a subsystem
* ;[[Memento pattern]]
: Provides the ability to restore an object to its previous state (rollback)
* ;[[Null object pattern]]
: Designed to act as a default value of an object
<dl>
* [[Observer pattern]]: a.k.a. Publish/Subscribe or Event Listener. Objects register to observe an event that may be raised by another object
<dt>[[Observer pattern]]</dt>
** Weak reference pattern: De-couple an observer from an observable<ref>{{cite web
* [[Observer pattern]]: <dd>a.k.a. Publish/Subscribe or Event Listener. Objects register to observe an event that may be raised by another object
<dl>
<dt>Weak reference pattern</dt>
** Weak reference pattern: <dd>De-couple an observer from an observable<ref>{{cite web
| first = Ashod
| last = Nakashian
Line 32 ⟶ 45:
| access-date = 2012-05-21
}}</ref>
</dd>
* [[Protocol stack]]: Communications are handled by multiple layers, which form an encapsulation hierarchy<ref>{{cite web
</dl>
</dd>
</dl>
;[[Protocol stack]]
* [[Protocol stack]]: Communications are handled by multiple layers, which form an encapsulation hierarchy<ref>{{cite web
| url = http://c2.com/
| title = Protocol Stack
Line 41 ⟶ 59:
| access-date = 2012-05-21
}}</ref>
* ;[[Scheduled-task pattern]]
: 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
* ;[[Specification pattern]]
: Recombinable [[business logic]] in a [[boolean algebra|boolean]] fashion
* ;[[State pattern]]
: A clean way for an object to partially change its type at runtime
* ;[[Strategy pattern]]
: Algorithms can be selected on the fly, using composition
* ;[[Template method pattern]]
: Describes the [[program skeleton|skeleton]] of a program; algorithms can be selected on the fly, using [[Inheritance (object-oriented programming)|inheritance]]
* ;[[Visitor pattern]]
: A way to separate an algorithm from an object
 
==See also==