觀察者模式 觸發聯動
當一個抽象模型有兩個方面,其中一個方面的操作依賴于另一個方面的狀態變化
如果在更改一個對象的時候,需要同時連帶改變其他的對象,而且不知道究竟應該 有多少對象需要被連帶改變
當一個對象必須通知其他的對象,但是你又希望這個對象和其他的被通知的對象是松散耦合的
當一個抽象模型有兩個方面,其中一個方面的操作依賴于另一個方面的狀態變化
如果在更改一個對象的時候,需要同時連帶改變其他的對象,而且不知道究竟應該 有多少對象需要被連帶改變
當一個對象必須通知其他的對象,但是你又希望這個對象和其他的被通知的對象是松散耦合的
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