觀察者模式(Observer Pattern)是一種行為型設計模式。它定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。當主題對象的狀態發生變化時,會自動通知所有觀察者對象,使它們能夠自動更新自己的狀態。
一、基礎
1. 意圖
核心目的:定義對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。
2. 使用場景
典型應用:
- 當一個抽象模型有兩個方面,其中一個方面依賴于另一個方面
- 當一個對象的改變需要同時改變其他對象,而不知道具體有多少對象需要改變
- 當一個對象必須通知其他對象,而又不希望與這些對象緊耦合
具體案例:
- 股票價格變動通知投資者
- 氣象站數據變化更新多個顯示板
- 電商系統中的庫存變化通知
- 社交媒體中的消息推送
3. 模式結構
- 主題(Subject):也被稱為被觀察對象或可觀察對象,它維護了一個觀察者列表,提供了添加、刪除觀察者以及通知觀察者的方法。
- 觀察者(Observe