Observer Pattern:
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Frequency of use: high

Participants:
1.Subject
2.Observer
3.ConcreteSubject
4.ConcreteObserver
(1)Subject
import java.util.*;
public abstract class Subject
{
protected ArrayList observers = new ArrayList();
public abstract void attach(Observer observer);
public abstract void detach(Observer observer);
public abstract void notify();
}
(2)Observer
public interface Observer
{
public void update();
}
(3)ConcreteSubject
public class ConcreteSubject extends Subject
{
public void attach(Observer observer)
{
observers.add(observer);
}
public void detach(Observer observer)
{
observers.remove(observer);
}
public void notify()
{
for(Object obs:observers)
{
((Observer)obs).update();
}
}
}
(4)ConcreteObserver
public class ConcreteObserver implements Observer
{
public void update()
{
//具体更新代码
}
}
(5)Test
Subject subject = new ConcreteSubject(); Observer observer = new ConcreteObserver(); subject.attach(observer); subject.notify();

浙公网安备 33010602011771号