1、观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,让他们能够自动更新自己。结构图如下。(PS: UML类图来自《大话设计模式》一书)
2、定义一个Watched接口,代表图中Subject角色,包含三个方法。-attach: 用于添加观察者-detach:用于移除观察者-notifyWatchers: 出发通知到所有观察者定义一个Watcher接口,代表图中Observer角色,包含一个方法。- update:用于收到通知时动作
3、定义ConcreteWatcher类,实现Watcher接口。添加一个name属性。
4、定义ConcreteWatched类,实现Watched接口。添加一个List用于存放观察者Watcher。
5、定义测试方法,运行查看测试结果。
6、其实Java本身内置观察者模式的实现:java.util.Observable类和java.util.Observer接口,分别对应于Subject角色和Observer角色。我们只需要直接使用就好。