將兩篇文章的原始碼做了整理,然後放上 Github
Github Repository - Design Patterns - Chain Of Responsibility Pattern
- https://github.com/kevintsengtw/design_patterns_Chain_Of_Responsibility_Pattern
因為有人說想要看看完整的程式碼,所以將兩篇文章的原始碼做了整理,然後放上 Github
- 練習題 - 設計模式 - 責任鍊模式 (職責鍊模式) Chain of Responsibility Pattern
- 練習題 - 設計模式 - 使用 PipelineNet 實作責任鍊模式 (職責鍊模式) Chain of Responsibility Pattern
另外有在程式碼裡添加了 ILogger 以及安裝使用 Serilog,這樣就可以知道有執行到哪一個 Handler。
ExampleWithChain
這是使用一般的職責鍊模式的 ExampleWithChainController
當 token 輸入 expired-token 時,職責鍊裡會執行到的 Handler 有:TokenExistHandler, TokenValidationHandler
當 token 輸入 valid-token 時,職責鍊裡會執行到的 Handler 有:TokenExistHandler, TokenValidationHandler, TokenExpirationHandler, RoleCheckHandler, TransactionLimitHandler, ExternalServiceHandler
ExampleWithPipelineNet
這是使用 PipelineNet 所實作的職責鍊模式的 ExampleWithChainController
當 token 輸入 expired-token 時,職責鍊裡會執行到的 Handler 有:TokenExistHandler, TokenValidationHandler
當 token 輸入 valid-token 時,職責鍊裡會執行到的 Handler 有:TokenExistHandler, TokenValidationHandler, TokenExpirationHandler, RoleCheckHandler, TransactionLimitHandler, ExternalServiceHandler
以上
純粹是在寫興趣的,用寫程式、寫文章來抒解工作壓力