设计模式-责任链模型
生活随笔
收集整理的這篇文章主要介紹了
设计模式-责任链模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
責任鏈模式
場景: OA審批系統
- CEO 審批項目 經費 500萬<x ≤\leq≤ 1000萬
- 總監 審批的經費 300萬 < x ≤\leq≤ 500萬
- 總監秘書 審批的經費 100萬< x ≤\leq≤ 300萬
- 研發經理 審批的經費 50萬 <x ≤\leq≤ 100萬
傳統方式 是 (接收到請求后,根據相應金額,來調用相應的approver 處理),客戶端 采用 if else 或者switch 方式來解決 (缺點) 當需要添加,相應角色的時候,或者金額變動時,都需要修改客戶端 ,并且客戶端(存放 接口請求,分配給那個approver )需要知道多少個審批解決和訪問。
職責連模式介紹: 每一個接收者,都包含另一個接收者的引用
注意!! handler 其他人也可能稱為:appprover
責任鏈模式,為請求創造一個接受者對象的鏈 這種模式對請求者和接收著,進行解耦。
- 職責連模式介紹: 每一個接收者,都包含另一個接收者的引用。如果一個對象不能處理該請求,那么它會把相同的請求傳遞給下一個接收者。
- 責任鏈模型屬于行為模型
原理圖
- Handler 抽象的處理者(abstract),定義一個處理請求的接口(abstract)同時含另外一個handler。
- ConcreHandlerA,B 是具體的處理者,若能處理則處理,若不能處理,則傳遞給下一個處理者。
- request 表示一個請求,含有多個屬性
具體實例:
注意!! 實現是 各個審批,設置好下一個審批(構成一個環形)
代碼 后續補充
總結
以上是生活随笔為你收集整理的设计模式-责任链模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大众点评网2016校招试题选录
- 下一篇: Cisco命令大全