精·软件工程(完整版).ppt

软件工程 Observer(观察者) —为在主题发生改变时需获得通知的对象定义一个更新接口。 ConcreteSubject(具体主题) —将有关状态存入每个ConcreteObserver对象。 —当它的状态发生改变时, 向它的各个观察者发出通知。 ConcreteObserver(具体观察者) —维护一个指向ConcreteSubject对象的引用。 —存储有关状态,这些状态应与目标的状态保持一致。 —实现Observer的更新接口以使自身状态与目标状态保持一致。 6. 参与者 Subject(主题) —主题知道它的观察者。可有任意多个观察者观察同一个目标。 —提供注册和删除观察者对象的接口。 软件工程 7. 协作 当ConcreteSubject发生任何可能导致其观察者与其本身状态不一致的改变时,它将通知各个观察者。 在得到一个具体主题的改变通知后, Concrete-Observer对象可向主题对象查询信息。 ConcreteObserver使用这些信息以使它的状态与主题对象的状态一致。 右边交互图说明了一个目标对象和两个观察者之间的协作: 软件工程 8. 效果 Observer模式允许独立的改变主题和观察者,也可以单独复用目标对象而无需同时复用其观察者, 反之亦然。它也可以在不改动目标和其他观察者的前提下增加观察者。 下面是观察者模

文档评论(0)

1亿VIP精品文档

相关文档