[GoF23] Java中的觀察者模式(Observer)
Java作為一種面向?qū)ο蟮拈_發(fā)語言,對(duì)實(shí)現(xiàn)設(shè)計(jì)模式提供了良好的支持,并且提供了許多默認(rèn)的實(shí)現(xiàn),比如:通過Java中的Observable類和Observer接口可以方便的實(shí)現(xiàn)觀察者模式。
下面我們就用一個(gè)實(shí)際的例子來說明:日常生活中說起觀察者,最常見的例子可能就是天氣預(yù)報(bào),在這里我們的觀察對(duì)象是地球,而我們是通過發(fā)射氣象衛(wèi)星這個(gè)觀察者來檢測(cè)地球氣象變化的。
所以這個(gè)例子中涉及三個(gè)對(duì)象:
地球?(Earth):?????????????????????被觀察對(duì)象
氣象衛(wèi)星(Satellite):????????????觀察者
氣象局(WeatherService):??? 客戶端調(diào)用
被觀察對(duì)象:地球?(Earth)






































[注意] 在需檢測(cè)的對(duì)象前需要設(shè)置變化點(diǎn)setChanged()和通知觀察者notifyObservers(),這兩個(gè)函數(shù)是由Observable類實(shí)現(xiàn)的,封裝了觀察者模式實(shí)現(xiàn)的細(xì)節(jié)。
觀察者:氣象衛(wèi)星(Satellite)























客戶端調(diào)用:氣象局(WeatherService)
































[運(yùn)行結(jié)果]





posted on 2006-05-18 10:54 zJun's帛羅閣 閱讀(1939) 評(píng)論(2) 編輯 收藏 所屬分類: 設(shè)計(jì)模式