Pattern Reminder: Observer

| | Comments (0) | TrackBacks (0)

Definition: The Observer Pattern defines a One-to-Many dependency between objects in a way that all dependent objects get automatically notified und updated, if the state of an object changes. Subjects or Observables notify Observers over an defined interface. Observers do not get notified in a particular order. Swing, JavaBeans and RMI use the Pattern often.

Java Example: A client registers to a newsletter and gets notified for every new news.

observer.jpg

Subject:

public class Newsletter extends Observable
{
private String news;
public Newsletter(){}
public void setNewNews(String text)
{
this.news = text;
setChanged();
notifyObservers(this);
}
public String getNews()
{
return news;
}

Observer:

public class NewsReader implements Observer {
Observable observable;
public NewsReader(Observable ob)
{
this.observable = ob;
this.observable.addObserver(this);
}
public void update(Observable obs, Object obj) {
if (obs instanceof Newsletter) {
Newsletter newsletter = (Newsletter)obs;
System.out.println(newsletter.getNews());
}
}
}

Categories

,

0 TrackBacks

Listed below are links to blogs that reference this entry: Pattern Reminder: Observer.

TrackBack URL for this entry: http://www.innoq.com/mt4/mt-tb.cgi/2465

Leave a comment

About this Entry

This page contains a single entry by Christian Albrecht published on November 8, 2006 12:14 PM.

Pattern Reminder: Strategy was the previous entry in this blog.

Pattern Reminder: Command is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.0