標籤(空格分隔): 設計模式設計模式
行爲型模式。設計
定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,全部依賴於它的對象都獲得通知並被自動更新。server
不知道觀察者有多少個,觀察者能夠動態綁定和解綁。對象
具體實現:
Subject角色:抽象角色,用來存放全部觀測者,即彙集一個Observer的list,提供綁定觀測者和解綁觀測者的藉口,其實就是把Observe放進list和從list中刪除。繼承
具體主題(ConcreteSubject):繼承Subject的類。將有關狀態存入具體觀察者對象;在具體主題內部狀態改變時,給全部登記過的觀察者發出通知。即notifyAllObserver的方法,一旦狀態改變,立刻調用這個方法通知全部觀察者,具體是遍歷觀察者列表,調用它們的update方法。接口
觀察者接口(Observer):爲全部的具體觀察者定義一個接口,在獲得主題通知時更新本身,包含一個update方法。date
具體觀察者(ConcreteObserver):實現抽象觀察者角色所要求的update接口,以便使自己的狀態與主題狀態協調。遍歷