002_2.观察者模式_手把手建立设计模式
P58页
1.第一步,根据角色,建立接口 Subject ,Observer.
2.第二步,根据功能,建立接口 DislayElemtn
3.第三步,画类图, 画出接口和实现类
4.第四步,不同角色之间的调用关系。
主题对象是用来->被注册的。
观察者是主题对象状态发生改变时->被通知的(被调用)的。
5.第五步,主题对象的实现 (简陋版,只是实现了功能,但是没有优化具体的结构)
5.1 成员变量
1.装 观察者的一个容器List
2. 由N个表示状态的 成员变量组成
5.2 方法的定义
1.构造方法 {对装观察者的容器进行初始化}
2.实现主题接口中定义的必要方法 (1.注册和取消注册 监听者的方法)
3.notifyObsevers() {通知观察者们,状态改变了}
4.触发通知的方法xxxChanged {notifyObservers()}
5.定义修改主题对象 状态的 方法,同时在修改时,调用xxxChanged(),然后调用xxxChange() ->notifyObservers()
5->4 ->3 .
6.第六步,观察者的实现
6.1 成员变量
1.改观察者只关心的状态
2.观察者 要持有一个 主题对象接口的一个引用
6.2方法的定义
1.构造函数 {形参是主题对象: 接到主题对象后,将引用指向这个主题对象; 观察者 把自己注册到主题对象中 => 两个关键角色之间建立一对多关联(两者的关联关系时在观察者这一方建立起来的)}。
2.观察者接口中实现的方法 {这个方法是被 主题对象调用的:什么时候调用?既什么时候被通知 =>当主题对象的状态放生变化时,被调用,从而被通知 ; 同时它在调用业务方法进行显示}
3.业务方法。被实现的接口所调用。
主题对象状态改变 -5.5 -> 5.4 -> 5.3 -> 6.2 -> 6.3 (以上是观察者模式的调用过程)
7.第七步,建立测试类
7.1 建立一个主题对象
7.2 建立3个观察者,者三个观察者构造函数,都是用 主题对象作为实参
7.3。主题状态改变,三个观察者都收到通知。
posted on 2016-10-18 23:21 fantiejun0436 阅读(75) 评论(0) 收藏 举报
浙公网安备 33010602011771号