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)    收藏  举报

导航