观察者模式

观察者模式是MVC模式的一种更为泛化的描述。

MVC 模式中的Model 其实就是观察者模式中的被观察者(Subject, Model的状态变化, 都会引发View 层次的变动,而MVC View层次自然就对应观察者模式中的观察者(Observer


观察者模式顾名思义, 主要有两种角色:

观察者(Observer

观察对象/被观察者(Subject/ Observable



注意到观察对象(Subject)定义了Attach(Observer), Detach(Observer) 方法【观察者绑定或者解绑到观察对象上】, 但这里隐含的一个问题是,是观察者来调用Attach/Detach 方法, 还是被观察者调用 Attach Detach 方法  

稍微思考一下可以得出答案, 是否观察某一个对象应该有观察者来决定, 而不是被观察者决定, 所以Attach/Detach 方法应该由Observer 来调用。


那么紧接着的第二个问题是图例中Observer 并没有 Subject 的引用, 如何调用其Attach/Detach 方法 

答案一: Subject 是具有全局可访问性(例如public class public static 成员)

答案二: Observer 被构造的时候传入Subject 对象, 自此之后, Observer 一直持有Subject的引用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值