其實核心就是那個set方法,set方法改變了自己(觀察者)的值的同時,也修改了多個對象(被觀察者)的值,從而保持了一個對象的值改變時所有“依賴于”它的對象都得到了通知
public setXXX(Object XXX){
//自己改變
this.XXX=XXX;
//通知其他對象
notify(xxx);
}
public setXXX(Object XXX){
//自己改變
this.XXX=XXX;
//通知其他對象
notify(xxx);
}
2016-10-13
說的太復雜了,感覺沒有把觀察者模式的本質(zhì)講解明白。至于推模型和拉模型的區(qū)別,解釋的也比較生硬。其實在傳統(tǒng)的觀察者模式中,全都屬于推模式。拉模式應該是在觀察者一段存在一個輪訓,然后每隔一段時間就向觀察對象回調(diào)一次數(shù)據(jù)。有變化就更新自己的狀態(tài),沒有變化就繼續(xù)輪訓。
2016-10-12