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

C# 設計模式無廢話系列十七:責任鏈模式(四)—— 適用場景與實現要點

     編輯:關於C語言

何時採用責任鏈模式

從代碼角度來看,當一個邏輯的處理由不同責任對象完成,而客戶端希望能自定義這個處理流程,且不想直接與多個責任對象產生耦合時,可考慮使用責任鏈模式。

從應用角度來看,若對某件事的處理存在一個流程,需經歷不同責任點處理,且流程較複雜或只想對外公開一個流程入口點時,也適合採用此模式。實際上,責任鏈模式還可在架構層面應用,例如 .NET 中的分層異常處理關係,便可視為一種責任鏈模式的體現。

實現要點

  • 抽象責任角色:定義一個抽象責任角色,避免各責任類型之間發生耦合。
  • 後繼責任引用:抽象角色中定義後繼責任角色的引用,並對外提供方法供客戶端配置鏈路。
  • 具體處理邏輯:各具體責任類型根據待處理對象的狀態結合自身責任範圍判斷是否能處理。若無法處理則提交給上級(純責任鏈模式:要麼自己處理,要麼轉交);也可在部分處理後再提交(不純責任鏈模式)。
  • 客戶端組裝鏈路:需在客戶端串聯各責任對象。若串聯不當,可能導致部分對象無法被任何責任對象處理。

注意事項

責任鏈模式與狀態模式的區別在於:前者著重責任的傳遞,且鏈路由客戶端配置;後者著重對象狀態的轉換,該轉換過程對客戶端是透明的。

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