首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:觀察者模式完整指南(一)— 核心定義、別名與結構圖解

     編輯:關於C語言

觀察者模式定義

定義一種一對多依賴關係,讓多個觀察者物件同時監聽某一主題物件。主題狀態變更時,自動通知所有觀察者使其自我更新。

眾多別名

  • 發布-訂閱模式
  • 模型-視圖模式
  • 源-監聽器模式
  • 從屬者模式

核心動機

軟體系統常需:某物件狀態變更時,其他物件自動響應。為易於復用,應選擇低耦合設計。但低耦合同時需保證高度協作。觀察者模式是滿足此雙重要求的最重要方案之一。

醫院掛號實例

醫院 = 子系統,部門 = 內部類別(掛號、門診、劃價、化驗、收費、取藥)。病人 = 客戶端,需與多部門互動,流程複雜。

解決方案:引入接待員(Facade/觀察者中介者),病人只對接接待員,由接待員協調各部門——這正是觀察者/中介者模式的生活投影。

模式結構圖

四大角色詳細職責

抽象主題角色

  • 維護觀察者引用集合
  • 提供 Attach/Detach 管理觀察者
  • 通常用抽象類別或介面實作

抽象觀察者角色

  • 定義更新介面(通常為 Update() 方法)
  • 所有具體觀察者必須實作

具體主題角色

  • 儲存相關狀態
  • 狀態變更時調用 Notify() 通知所有登記觀察者

具體觀察者角色

  • 儲存與主題一致的狀態
  • 實作 Update() 同步狀態
  • 可選:保存主題引用以便主動拉取資料

關鍵設計原則

針對抽象程式設計:主題引用抽象觀察者而非具體類別,使主題可動態維護觀察者清單,運行時靈活增減觀察者。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved