設計模式(3)觀察者模式

2021-08-21 02:39:50 字數 1043 閱讀 4010

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)觀察者模式

觀察者模式為您提供了避免元件之間緊密耦合的另一種方法。該模式非常簡單 乙個物件通過新增乙個方法 該方法允許另乙個物件,即 觀察者 乙個簡單示例是系統中的使用者列表。下面的 顯示乙個使用者列表,新增使用者時,它將傳送出一條訊息。新增使用者時,通過傳送訊息的日誌觀察者可以觀察此列表。首先定義觀察者介面 ...