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

Effective C#:用委派實現回呼 (2) - 多重委派、例外處理與設計決策

     編輯:關於C語言

多重委派的兩個潛在問題

  1. 例外擴散:前一個委派拋出例外,後續委派不會執行
  2. 回傳值只保留最後一個:多個委派綁定時,呼叫結果為最後一個委派的回傳值,據此判斷易出錯

最佳實踐

  • 多重委派回傳型別應為 void
  • 委派鏈中不要讓例外擴散,各委派內部自行處理

使用委派前必須釐清的四個問題

  1. 傳遞什麼資訊?時機固定?一次還是多次? → 決定是否用委派、委派簽名
  2. 委派是否為最佳方案? → 重載建構函式、介面、事件等可能更簡單
  3. 誰是呼叫端?誰是初始化端? → 釐清責任歸屬,避免寫反
  4. 委派初始化放在哪裡? → 採就近原則(如 WinForms 控制項事件初始化),防止漏寫

問題二深度解析

委派降低耦合,但非唯一途徑。例如彈出視窗編輯資料列:

  • 委派方案:視窗回呼通知修改完成
  • 建構函式方案:DataRow 為引用型別,直接傳入建構函式,視窗直接修改,更簡單直接

思考時勿侷限於委派,評估所有可行方案選擇最簡潔者。

委派初始化就近原則

參考 WinForms 控制項事件初始化模式,在需要委派的類別內部初始化,單一責任、易維護。

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