标签:
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并更新。
主题和观察者定义了一对多的关系,观察者依赖于主题。当主题对象的状态发生改变时,观察者就会被通知。根据通知观察者进行相关操作。
一、 涉及角色:主题接口,观察者接口,具体主题,具体观察者。
优点:主题是真正拥有数据的对象,观察者是主题的依赖者,在数据变化跟新时这样比多个对象控制同一份数据,可以更干净的OO设计。
缺点:并不是所有的观察者都需要这份数据,有可能只需要其中的一部分,却接收了一堆数据。(JDK中的观察这模式,提供了支持,支持以个getter方法的主动获取数据)
二、JDK中观察者模式
JDK对观察者模式提供了支持。主题类Observable,具体主题类可以继承JDK中实现类Observable类。具体观察者可以实现JDK中的观察者接口Observer接口。
主题通知观察者:继承JDKObservable的主题接口,通知观察者对象步骤。
(1)先调用Observable中的setChanged()方法。标记状态已经改变
(2)再调用notifyObservers()或notifyObservers(arg)(带参数方法可以推送指定的参数)。
标签:
原文地址:http://www.cnblogs.com/mxmbk/p/5083464.html