观察者模式 触发联动
当一个抽象模型有两个方面,其中一个方面的操作依赖于另一个方面的状态变化
如果在更改一个对象的时候,需要同时连带改变其他的对象,而且不知道究竟应该 有多少对象需要被连带改变
当一个对象必须通知其他的对象,但是你又希望这个对象和其他的被通知的对象是松散耦合的
当一个抽象模型有两个方面,其中一个方面的操作依赖于另一个方面的状态变化
如果在更改一个对象的时候,需要同时连带改变其他的对象,而且不知道究竟应该 有多少对象需要被连带改变
当一个对象必须通知其他的对象,但是你又希望这个对象和其他的被通知的对象是松散耦合的
2016-10-28
this.notifyObserver() 和this.notifyObserver(Object objec) 方法应该测试一下,看看之间有无调用关系
2016-10-28
推模式,是假定目标对象知道观察者需要的数据! 所以发送数据!
而;拉模型,只是传一个引用,引用中get 的数据属性假如有很多的话! 不同的观察者,需要的数据不同,用引用来,调取数据,这样比较灵活!
而;拉模型,只是传一个引用,引用中get 的数据属性假如有很多的话! 不同的观察者,需要的数据不同,用引用来,调取数据,这样比较灵活!
2016-10-27
其实核心就是那个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