Behavioral pattern
   HOME

TheInfoList



OR:

In
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, behavioral design patterns are
design pattern A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering. The "Gang of Four" boo ...
s 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: * Blackboard design pattern: 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 pattern: Command objects encapsulate an action and its parameters * "Externalize the stack": Turn a recursive function into an iterative one that uses a
stack Stack may refer to: Places * Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group * Blue Stack Mountains, in Co. Donegal, Ireland People * Stack (surname) (including a list of people ...
*
Interpreter pattern In computer programming, the interpreter pattern is a design pattern that specifies how to evaluate sentences in a language. The basic idea is to have a class for each symbol (terminal or nonterminal) in a specialized computer language. The sy ...
: Implement a specialized computer language to rapidly solve a specific set of problems * Iterator pattern: Iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation *
Mediator pattern In software engineering, the mediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter the program's running behavior. In object-oriented ...
: Provides a unified interface to a set of interfaces in a subsystem *
Memento pattern The memento pattern is a software design pattern that exposes the private internal state of an object. One example of how this can be used is to restore an object to its previous state (undo via rollback), another is versioning, another is custom s ...
: Provides the ability to restore an object to its previous state (rollback) *
Null object pattern In object-oriented computer programming, a null object is an object with no referenced value or with defined neutral (''null'') behavior. The null object design pattern, which describes the uses of such objects and their behavior (or lack thereof) ...
: Designed to act as a default value of an object *
Observer pattern In software design and engineering, the observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by ca ...
: 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 *
Protocol stack The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the ''suite'' is the definition of the communication protoco ...
: Communications are handled by multiple layers, which form an encapsulation hierarchy * Scheduled-task pattern: A task is scheduled to be performed at a particular interval or clock time (used in
real-time computing Real-time computing (RTC) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constrai ...
) * 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 fashion * State pattern: A clean way for an object to partially change its type at runtime *
Strategy pattern In computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time in ...
: Algorithms can be selected on the fly, using composition *
Template method pattern In object-oriented programming, the template method is one of the behavioral design patterns identified by Gamma et al. in the book ''Design Patterns''. The template method is a method in a superclass, usually an abstract superclass, and defines ...
: Describes the
skeleton A skeleton is the structural frame that supports the body of an animal. There are several types of skeletons, including the exoskeleton, which is the stable outer shell of an organism, the endoskeleton, which forms the support structure inside ...
of a program; algorithms can be selected on the fly, using inheritance * Visitor pattern: A way to separate an algorithm from an object


See also

* Concurrency pattern *
Creational pattern In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or ...
* Structural pattern


References

{{Design Patterns patterns Software design patterns