定義一種一對多依賴關係,讓多個觀察者物件同時監聽某一主題物件。主題狀態變更時,自動通知所有觀察者使其自我更新。
軟體系統常需:某物件狀態變更時,其他物件自動響應。為易於復用,應選擇低耦合設計。但低耦合同時需保證高度協作。觀察者模式是滿足此雙重要求的最重要方案之一。
醫院 = 子系統,部門 = 內部類別(掛號、門診、劃價、化驗、收費、取藥)。病人 = 客戶端,需與多部門互動,流程複雜。
解決方案:引入接待員(Facade/觀察者中介者),病人只對接接待員,由接待員協調各部門——這正是觀察者/中介者模式的生活投影。

Attach/Detach 管理觀察者Update() 方法)Notify() 通知所有登記觀察者Update() 同步狀態針對抽象程式設計:主題引用抽象觀察者而非具體類別,使主題可動態維護觀察者清單,運行時靈活增減觀察者。