观察者模式定义了一个一对多的依赖关系,当被观察者对象发生变化的时候,通过主题对象通知观察者,进行各种操作。
观察者模式很好的实现了java面向对象的特征:高内聚,低耦合。
实现观察者模式就可以通过java中自带的API,比较方便。
见下面代码来实现一个观察者模式(java)
主题:MessageSender
观察者:MessageReceiver
public class ObserverPattern {
public static void main(String[] args) {
Observer observer = new MessageReceiver();
MessageSender sender = new MessageSender();
sender.addObserver(observer);
sender.sendMessage("happy chongyang!");
}
static class MessageSender extends Observable {
public void sendMessage(String message){
setChanged();
notifyObservers(message);
}
}
static class MessageReceiver implements Observer{
@Override
public void update(Observable o, Object arg) {
System.out.println("hello," + arg);
}
}
}