學習日記之觀察者模式

觀察者模式(發佈-訂閱 Publish/Subscribe 模式):定義了一種一對多的依賴關係,讓多個觀察者對象同事監聽某一個主體對象。這個主體對象在狀態發生變化時,會通知所有觀察者對象,使他們能夠自動更新自己。


1:觀察者模式特點

(1),將一個系統分割成一系列相互協作的類有一個很不好的副作用,那就是需要維護相關對象間的一致性。我們不希望爲了維持一致性而使各類緊密耦合,這樣會給維護、擴展和重用都帶來不便。

(2),當一個對象改變需要同時改變其他對象的時候,而且它不知道具體有多少對象需要改變時,使用觀察者模式。

(3),當一個抽象模型有兩個方面,其中一個方面依賴於另一個方面,這時用觀察者模式可以將這兩者封裝在獨立的對象中使他們各自獨立的改變和複用。

(4),觀察者模式所做的工作其實就是解除耦合。讓耦合的雙方都依賴與抽象,而不是依賴於具體。從而使得各自的變化都不會影響另一邊的變化。


2:解決觀察者模式缺陷

(1),委託就是一種引用方法的類型。一旦爲委託分配了方法,委託將與該方法具有完全相同的行爲。委託方法的使用可以像其他任何方法一樣,具有參數和返回值。委託可以看做是對函數的抽象,是函數的‘類’,委託的實例將代表一個具體的函數。

(2),一個委託可以搭載多個方法,所以方法依次被喚醒。更重要的,委託所搭載的方法並不一定屬於同一個類。

(3),委託所搭載的所以方法必須具有相同的原型和形式,也就是擁有相同的參數列表和返回值類型。

發佈了49 篇原創文章 · 獲贊 49 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章