其实核心就是那个set方法,set方法改变了自己(观察者)的值的同时,也修改了多个对象(被观察者)的值,从而保持了一个对象的值改变时所有“依赖于”它的对象都得到了通知
public setXXX(Object XXX){
//自己改变
this.XXX=XXX;
//通知其他对象
notify(xxx);
}
public setXXX(Object XXX){
//自己改变
this.XXX=XXX;
//通知其他对象
notify(xxx);
}
2016-10-13
说的太复杂了,感觉没有把观察者模式的本质讲解明白。至于推模型和拉模型的区别,解释的也比较生硬。其实在传统的观察者模式中,全都属于推模式。拉模式应该是在观察者一段存在一个轮训,然后每隔一段时间就向观察对象回调一次数据。有变化就更新自己的状态,没有变化就继续轮训。
2016-10-12