ETH官方钱包

切換
舊版
前往
大廳
主題

Observer Pattern - 觀察者模式

默思 | 2017-02-13 17:43:55 | 巴幣 0 | 人氣 430

這次要介紹觀察者模式(Observer Pattern),據說觀察者模式經常會使用到,看完它的概念後仔細想想似乎是如此。

大家應該都知道訂報吧,我向報社註冊說我要每天送報到我住家,註冊完後,報社也的確準時的將報只送到郵筒中。

上面的就是觀察者模式的例子,觀察者模式需要有主題(Subject)和觀察者(Observer),主題可以被觀察者給訂閱,而且訂閱的觀察者可以不只一個,當觀察者不想訂報紙了,可以通知主題要取消訂報。

關係圖表:


上方圖表是主題與觀察者之間的UML圖,由此圖可以看出Time類別實作Subject介面,Clock實作Observer介面,在觀察者模式中,Time即是主題,Clock是觀察者

該範例是Time取得時間,每一秒更新一次,每次更新便會通知Clock,Clock收到通知後就會印出目前時間

結果如下:


源碼:點我

創作回應

更多創作