Java的API中有兩組接口類是用來(lái)寫觀察者模式用的,分別是java.util.Observable、java.util.Observer和java.util.EventListener、Java.util.EventObject。本文并沒有直接使用到這些API,而是自定義一套觀察者模式中相關(guān)的接口類,且選取一個(gè)日常生活中常見的一個(gè)事件來(lái)說(shuō)明觀察者模式的使用。
現(xiàn)實(shí)場(chǎng)景:有一名店(Shop),為了財(cái)物安全起見,除了在店內(nèi)裝了攝像頭(Camera)來(lái)監(jiān)控店內(nèi)的總?cè)藬?shù)外,還聘請(qǐng)了一些門衛(wèi)(Camera)守在店門口,對(duì)來(lái)訪的客人進(jìn)行實(shí)名登記,即客人進(jìn)入時(shí)要記名,客人出店時(shí)也要記錄其離去。
//Watcher接口:
//Watchable類:
//Shop類,繼承了Watchable類,Shop內(nèi)有什么動(dòng)靜,會(huì)通過調(diào)用父類的notifyWatcher()方法通知觀察者。
//Guard(門衛(wèi)類)和Camera(攝像頭類)都屬于本例中的觀察者,負(fù)責(zé)觀察店內(nèi)外的動(dòng)靜,
//測(cè)試類代碼:
本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處,謝謝!http://m.tkk7.com/rongxh7(心夢(mèng)帆影JavaEE技術(shù)博客)
歡迎光臨我的博客,本博客文章均為個(gè)人原創(chuàng),歡迎提出寶貴的意見和建議!(容新華)