Difference between revisions of "Observer pattern"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(Description)
(See also)
Line 26: Line 26:
 
== See also ==
 
== See also ==
  
 +
* [[Lapsed listener problem]]
 
* [[Software design pattern]]
 
* [[Software design pattern]]
 
* [[Zen Cart observer]]
 
* [[Zen Cart observer]]

Revision as of 03:57, 7 February 2016

The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods.

Description

It is mainly used to implement distributed event handling systems. The Observer pattern is also a key part in the familiar model–view–controller (MVC) architectural pattern.

The observer pattern is implemented in numerous programming libraries and systems, including almost all GUI toolkits.

Memory leaks

The observer pattern can cause memory leaks, known as the lapsed listener problem.

The observer pattern requires both explicit registration and explicit deregistration (as in the dispose pattern), because the subject holds strong references to the observers, keeping them alive.

Leakage can be prevented by the subject holding weak references to the observers.

Related patterns

Related patterns include:

See also

External links