生活中的設計模式之觀察者模式

2021-08-01 06:46:48 字數 719 閱讀 9152

觀察者模式在生活中十分常見,舉個最簡單的例子,我們帶的智慧型手錶,當你有鬧鐘,**或者簡訊來的時候,就震你。

對於手錶來說,你是觀察者,手錶是被觀察者。

那麼手錶提醒你這個功能是如何實現的呢?

1.手錶戴在你手上

2.手錶有事件發生了(比如鬧鐘時間到了吧)

3.你注意到手錶的震動

在寫程式的時候,我們把手錶封裝成乙個類,人封裝成乙個類。那麼,手錶類要有兩個方法,佩戴方法和震動方法。

佩戴方法完成手錶與人(的手腕)的繫結,震動方法完成手錶通過震動觸發人的感覺功能,讓人覺察。

人這個類要有感覺方法。

橘子牌手錶類

某王老弟類

場景類

輸出為:感覺到了強力震動

如果今天是周五,小王想摘掉手錶,不讓他提醒自己,應該怎麼做呢?

本例為最簡單的觀察者模式,觀察者模式又稱訂閱-發布模式,更像日常生活中的對講機。

如果調到某一頻段(訂閱),那麼這個頻段的內容就能夠接收到(發布),允許很多個觀察者註冊進來。

生活中的設計模式 觀察者模式

之前的qq客戶端是不允許多個客戶端同時登入的,後來才有的多客戶端登入 涉及到notify那麼之前必然有乙個註冊和取消註冊觀察者的過程 這兩個過程應該對應著我們登入qq和退出登入操作 這樣每次登入的時候就會在服務端observer容器裡加上當前這個客戶端,如果退出登入就會刪去當前這個觀察者 那麼問題就...

設計模式之觀察者模式

首先說了乙個自己的小例子吧,前兩天我的乙個朋友來找我玩,因為路途比較遠,我需要知道他的位置,然後安排好時間去接他,那麼在這個例子中,我就是乙個觀察者,需要時時刻刻觀察他的位置,我的朋友就是乙個被觀察者。那麼需要知道我朋友的位置,就有兩種方式,第一,我自己打 問,第二,我的朋友告訴我,下面我們來看看這...

設計模式之觀察者模式

一 作用 讓多個觀察者監視某一物件的變化,如果物件變化,則通知所有觀察者。二 例子 抽象主題類 public abstract class subject 移除觀察者 public void detach observer observer 向觀察者 們 發出通知 public void notif...