本文同步更新於blog
觀察者模式會將類別分為兩類:
分別是主題類別 (Subject)與觀察者類別 (Observer)。
透過增加/移除名單中的觀察者,來控制主題類別改變時,
要通知的對象有哪些。
優點:
透過定義好的主題介面與觀察者介面,
將主題類別與觀察者類別的關係解耦。
即主題類別不需要知道真正的觀察者是誰,
而觀察者類別也不需要知道到底是誰通知它的。
缺點:
會使程式碼變得複雜。
觀察者類別中的方法名稱必須一致(可以用事件委託技術修正)
若觀察者訂閱多個主題時,無法決定被通知的順序。
[命令模式]:
命令模式中,調用者發送命令給接收者,由接收者決定是否執行命令。
觀察者模式中,主題發送通知給觀察者後,由觀察者自行決定要執行的行動。
經常運用在實時事件系統。
程式中有「通知」兩字的行為,很可能是它的應用時機。
ʕ •ᴥ•ʔ:又是個日常生活中就會看到的模式。