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

C# 設計模式無廢話系列十九:觀察者模式(一)—— 意圖與場景引入

     編輯:關於C語言

意圖

定義對象間一對多依賴關係,當一個對象狀態改變時,所有依賴它的對象都能得到通知並自動更新。

場景引入

假設需在網頁分頁顯示資料。初期需求簡單:兩個按鈕(上/下頁)+ GridView 顯示資料。實作邏輯:點擊按鈕檢查頁碼邊界 → 更新 GridView → 更新按鈕狀態。此時僅依賴 GridView,問題不大。

客戶看 Demo 後要求顯示「當前頁/總頁數」,新增 Label 控件,按鈕事件中同步更新 Label。客戶滿意。隨資料增多達數十頁,客戶嫌前後翻頁不便,要求新增頁碼列表分頁控制器。此需求徹底打亂代碼:

  • 點擊列表分頁:更新自身狀態、通知 GridView、通知按鈕分頁、通知 Label
  • 點擊按鈕分頁:更新自身狀態、通知 GridView、通知列表分頁、通知 Label

未來若再有分頁相關修改,代碼將無法維護。由此引入觀察者模式解決耦合混亂問題。

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