引用百度百科,观察者模式概念:观察者模式(Observer)是软件设计模式的一种,在此模式中,一个目标物件管理所有依附于它的所有观察者物件,并且在它本身的状态发生改变时主动发出通知。这通常通过呼叫观察者实现的方法来实现,此种常被用来实现事件处理系统,例如事件驱动模型
1.JDK中的观察者模式设计
用一个UML图看下JDK提供了我们哪些接口和类:
Observer:观察者。
Observerable:可观察的,相当于Subject,被观察者。
Observerable中使用布尔类型值changed标识被观察者状态是否改变,Vector作为Observer观察者容器,存放所有的观察者对象;提供了一系列对观察者对象的方法,添加、删除、通知观察者、观察者对象计数。想要查看源码的可以去JDK>rt.jar>java>util包下查看
案例
观察者MyObserverA:
import java.util.Observable;
import java.util.Observer;
/**
* 观察者A
* @author zisong yue
* @date 2018-12-03
*/
public class MyObserverA implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("MyObserverA update status");
}
}
观察者MyObserverB
import java.util.Observable;
import java.util.Observer;
/**
* 观察者B
* @author zisong yue
* @date 2018-12-03
*/
public class MyObserverB implements Observer {
@Override
public void update(Observable o, Object arg) {
System.out.println("MyObserverB update state");
}
}
被观察者MyObserverable
import java.util.Observable;
import java.util.Observer;
/**
* 被观察者
* @author zisong yu