Head first设计模式(2)
认识观察者模式 我们看看报纸和杂志的订阅是怎么回事: 1 、报社的业务就是出版报纸 2 、向某家报社订阅报纸,只要他们有新报纸出版,就会给你送来。只要你是他们的订户,你就会一直收到新报纸 3 、当你不想再看报纸的时候,取消订阅,他们就不会再送新报纸来 4 、只要报社还在运营,就会一直有人(或单位)向他们订阅报纸或取消订阅报纸 出版者 + 订阅者 = 观察者模式 如果你了解报纸的订阅是怎么回事,其实就知道观察者模式是怎么回事,只是名称不太一样:出版者改称为“主题” (Subject) ,订阅者改称为 " 观察者 "(Observer) 1 、主题对象管理某些数据 2 、当主题内的数据改变就会通知观察者 3 、一旦数据改变,新的数据会以某种形式送到观察者手上 4 、观察者订阅(注册)主题以便在主题数据改变时能够收到更新 5 、某个对象不是观察者,所以在主题数据改变使不会被通知 观察者的一天 1 、鸭子对象过来告诉主题,它相当一个观察者 2 、鸭子其实想说的是:我对你的数据改变感兴趣,一有变化请通知我 3 、鸭子对象现在已经是正式的观察者了 4 、鸭子静候通知,等待参与这项伟大的事情。一旦接获通知,就会得到一个整数 5 、主题有了新的数据值 6 、现在鸭子和其他所有观察者都会收到通知:主题已经改变了 7 、老鼠对象要求从观察者中把自己除名 8 、老鼠已经观察此主题太久,厌倦了