Observer Pattern

Intuitive

Definition 1

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. 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.

Structure 2

Subject

  • knows its observers. Any number of Observer objects may observe a subject.
  • provides an interface for attaching and detaching Observer objects

Observer

  • defines an updating interface for objects that should be notified of changes in a subject.

ConcreteSubject

  • stores state of interest to ConcreteObserver objects.
  • sends a notification to its observers when its state changes.

ConcreteObserver

  • maintains a reference to a ConcreteSubject object.
  • stores state that should stay consistent with the subject’s.
  • implements the Observer updating interface to keep its state consistent with the subject’s.

Example Code

Java

Real Implementations

Broadcast Receiver 3 4 on Android

Advertisements

One thought on “Observer Pattern

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s