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