觀察者模式(observer pattern)
觀察者模式(observer pattern):屬於對象的行爲型模式。定義了一種一對多的依賴關係,讓多個觀察者對象同事監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。觀察者模式又叫發佈-訂閱(Publish/Subscribe)模式、模型-視圖(Model/View)模式、源-監聽器(Source/Listener)模式或從屬者(Dependents)模式。
觀察者模式UML圖
觀察者模式涉及的角色
抽象主題(Subject)角色:Subject 類,它把所有對觀察者對象的引用保存在一個聚集裏,每個主題都可以有任何數量的觀察者。抽象主題提供一個接口,可以增加和刪除觀察者對象。具體主題(ConcreteSubject)角色:將有關狀態存入具體現觀察者對象;在具體主題的內部狀態改變時,給所有登記過的觀察者發出通知。抽象觀察者(Observer)角色:爲所有的具體觀察者定義一個接口,在得到主題的通知時更新自己。具體觀察者(ConcreteObserver)角色:實現抽象觀察者角色所要求的更新接口,以便使本身的狀態與主題的狀態相協調。
示例代碼
抽象主題類 Subject
具體主題類 ConcreteSubject
抽象觀察者類 Observer
具體觀察者類 ConcreteObserver
客戶端測試類 TestObserverPattern
Java學習資料獲取(複製下段連接至瀏覽器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==