Behavioral pattern: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Frap
 
imported>7804j
Split Publish–subscribe pattern and Observer pattern -- they are distinct
 
Line 33: Line 33:
: Designed to act as a default value of an object
: Designed to act as a default value of an object
<dl>
<dl>
<dt>[[Observer pattern]]</dt>
<dt>[[Observer pattern]]</dt>
<dd>a.k.a. Publish/Subscribe or Event Listener. Objects register to observe an event that may be raised by another object
<dd>Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. The variant '''weak reference pattern''' decouples an observer from an observable to avoid memory leaks in environments without automatic weak references.<ref>{{cite web |last=Nakashian |first=Ashod |date=2004-04-11 |title=Weak Reference Pattern |url=http://c2.com/ |url-status=bot: unknown |archive-url=https://web.archive.org/web/20110303085751/http://c2.com/ |archive-date=2011-03-03 |access-date=2012-05-21 |publisher=c2.com}}</ref></dd></dl>
<dl>
<dt>Weak reference pattern</dt>
<dd>De-couple an observer from an observable<ref>{{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
}}</ref>
</dd>
</dl>
</dd>
</dl>
;[[Protocol stack]]
;[[Protocol stack]]
: Communications are handled by multiple layers, which form an encapsulation hierarchy<ref>{{cite web
: Communications are handled by multiple layers, which form an encapsulation hierarchy<ref>{{cite web
Line 64: Line 46:
  |url-status  = bot: unknown
  |url-status  = bot: unknown
}}</ref>
}}</ref>
;[[Publish–subscribe pattern]]<dd>A messaging pattern where senders (publishers) and receivers (subscribers) are decoupled via message topics and brokers. Commonly used in distributed systems, this pattern supports asynchronous, many-to-many communication.</dd>
;[[Scheduled-task pattern]]
;[[Scheduled-task pattern]]
: A task is scheduled to be performed at a particular interval or clock time (used in [[real-time computing]])
: A task is scheduled to be performed at a particular interval or clock time (used in [[real-time computing]])

Latest revision as of 20:17, 8 June 2025

Template:Short description 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:

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 function that uses a stack[1]
Interpreter pattern
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
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
Observer pattern
Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. The variant weak reference pattern decouples an observer from an observable to avoid memory leaks in environments without automatic weak references.[2]
Protocol stack
Communications are handled by multiple layers, which form an encapsulation hierarchy[3]
Publish–subscribe pattern
A messaging pattern where senders (publishers) and receivers (subscribers) are decoupled via message topics and brokers. Commonly used in distributed systems, this pattern supports asynchronous, many-to-many communication.
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 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 skeleton 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

References

Template:Reflist

Template:Design Patterns patterns

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".