這次要介紹觀察者模式(Observer Pattern),據(jù)說觀察者模式經(jīng)常會使用到,看完它的概念後仔細(xì)想想似乎是如此。
大家應(yīng)該都知道訂報吧,我向報社註冊說我要每天送報到我住家,註冊完後,報社也的確準(zhǔn)時的將報只送到郵筒中。
上面的就是觀察者模式的例子,觀察者模式需要有主題(Subject)和觀察者(Observer),主題可以被觀察者給訂閱,而且訂閱的觀察者可以不只一個,當(dāng)觀察者不想訂報紙了,可以通知主題要取消訂報。
關(guān)係圖表:
上方圖表是主題與觀察者之間的UML圖,由此圖可以看出Time類別實(shí)作Subject介面,Clock實(shí)作Observer介面,在觀察者模式中,Time即是主題,Clock是觀察者
該範(fàn)例是Time取得時間,每一秒更新一次,每次更新便會通知Clock,Clock收到通知後就會印出目前時間
結(jié)果如下:
源碼:點(diǎn)我