1. 觀察者模式:又可稱為發布-訂閱模式,顧名思義,就是定義乙個監聽者,監聽著被觀察的事件,一旦觀察到被監聽者某個狀態變化就會觸發相應的事件
2.應用場景
觀察者模式常被用於實現訂閱功能的場景,如微博訂閱,當我們訂閱了某個人的微博賬號,該使用者發布訊息,就會通知到我們
3.實現方案:
(1).針對觀察者和被觀察者分別定義介面(有利於進行擴充套件)
(2)被觀察者: 1)定義觀察者集合,並定義針對集合的新增,刪除操作
2)定義通知方法,通過遍歷集合呼叫觀察者相應方法
(3)觀察者中需要有個處理相應事件的方法
4.優點
觀察者和被觀察者是抽象耦合的,建立了一套觸發機制
小紅遇到危險,喊救命,這時小黃和小明聽到,觸發相應的事件
1.被觀察者介面
//被觀察者
public inte***ce subject
2.觀察者介面
//觀察者
public inte***ce observer
3.小紅(被觀察者)
//被觀察者
public class xiaohong implements subject
@override
public void call()
}@override
public void addobserver(observer ob)
}}
4.小黃(觀察者)
//觀察者
public class xiaohuang implements observer
}
5.小明(觀察者)
//觀察者
public class xiaoming implements observer
}
6.測試
public static void main(string args)
}
設計模式 3 觀察者模式
觀察者模式 observer 簡介 定義乙個一對多的依賴關係,讓多個觀察者物件監聽某個主題物件,當主題物件的狀態發生改變時,主題物件則通知所有的觀察者物件,做出相應的反應,更新自己的狀態等。觀察者模式結構圖 subject抽象類以及concretesubject具體實現類 file subject....
python 設計模式 觀察者 觀察者設計模式
在觀察者設計模式這種模式中,物件被表示為等待事件觸發的觀察者。一旦發生指定的事件,觀察者就會關注該主體。當事件發生時,主體告訴觀察者它已經發生。以下uml圖表示觀察者模式 如何實現觀察者模式?現在讓我們來看看如何實現觀察者模式。參考以下實現 import threading import time ...
PHP設計模式(3)觀察者模式
觀察者模式為您提供了避免元件之間緊密耦合的另一種方法。該模式非常簡單 乙個物件通過新增乙個方法 該方法允許另乙個物件,即 觀察者 乙個簡單示例是系統中的使用者列表。下面的 顯示乙個使用者列表,新增使用者時,它將傳送出一條訊息。新增使用者時,通過傳送訊息的日誌觀察者可以觀察此列表。首先定義觀察者介面 ...