3. Java中的Observer模式:Observer和Observable
![]()
在大致了解了Observer模式的描述之后,现在我们更为关心的是它在Java中是如何应用的。幸运的是,自从JDK 1.0起,就有了专门处理这种应用的API,这就是Observer接口和Observable类,它们是属于java.util包的一部分。看来Java的开发者们真是深谙设计模式的精髓,而Java的确是为了真正的面向对象而生的,呵呵!
这里的Observer和Observable分别对应设计模式中的Observer和Subject,对比一下它们定义的方法,痕迹还是相当明显的:
Observer的方法:
update(Observable subject, Object arg) 监控subject,当subject对象状态发生变化时Observer会有什么响应,arg是传递给Observable的notifyObservers方法的参数;
Observable的方法:
addObserver(Observer observer) observer向该subject注册自己
hasChanged() 检查该subject状态是否发生变化