定義:定義對象間一種一對多的依賴關係,使得每 當一個對象改變狀態,則所有依賴於它的對象都會得到通知並被自動更新。
圖一
理解:
Observer(觀察者):update方法,在Observable(被觀察者)發生變化時執行。
Observable(被觀察者):addObserver()添加觀察者,deleteObserver()刪除觀察者,notifyObserver()通知全部觀察者,並且執行(觀察者)中的update()方法。而notifyObserver的執行在haveBreakfast()和haveFun()中,因爲這兩個相當於讓(被觀察者)產生變化。
注意:這裏的觀察過程,跟平時理解的不一樣。生活中的理解,應該是 (觀察者)主動添加和觀察(被觀察者)。程序中則正好相反。
圖二:通用類圖