Content deleted Content added
m computer programming |
Split Publish–subscribe pattern and Observer pattern -- they are distinct |
||
(58 intermediate revisions by 49 users not shown) | |||
Line 1:
{{short description|Type of software design pattern}}
In [[software engineering]], '''
== Design patterns ==
Examples of this type of
: 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
: Command objects are handled or passed on to other objects by logic-containing processing objects
: Command objects encapsulate an action and its parameters
* [[Interpreter pattern]]▼
;"Externalize the stack"
* [[Iterator pattern]]▼
: Turn a [[Recursion (computer science)|recursive function]] into an [[iterative function]] that uses a [[call stack|stack]]<ref>{{cite web
* [[Mediator pattern]]▼
|url = http://c2.com/
* [[Memento pattern]]▼
|title = Externalize The Stack
* [[Observer pattern]] ▼
|date = 2010-01-19
* [[State pattern]]▼
|publisher = c2.com
* [[Strategy pattern]]▼
|archive-url = https://web.archive.org/web/20110303085751/http://c2.com/
▲* [[Template method pattern]]
|archive-date = 2011-03-03
* [[Visitor pattern]]▼
|access-date = 2012-05-21
* [[Single-Serving Visitor pattern]]▼
|url-status = bot: unknown
* [[Hierarchical visitor pattern]]▼
}}</ref>
: Implement a specialized computer language to rapidly solve a specific set of problems
: [[Iterator]]s 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)
;[[Null object pattern]]
: Designed to act as a default value of an object
<dl>
<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>
;[[Protocol stack]]
: Communications are handled by multiple layers, which form an encapsulation hierarchy<ref>{{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
}}</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]]
: A task is scheduled to be performed at a particular interval or clock time (used in [[real-time computing]])
: 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
: A clean way for an object to partially change its type at runtime
: 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]]
: A way to separate an algorithm from an object
==See also==
* [[Creational pattern]]
* [[Structural pattern]]
==References==
{{Reflist}}
{{Design Patterns patterns}}
[[Category:Software design patterns]]
|