14、Cahin of Responsibility 責任鏈 COR設計模式
阿新 • • 發佈:2020-08-06
1、責任鏈模式
chain of responsibility 責任鏈模式
責任鏈,顧名思義,就是用來處理相關事務責任的一條執行鏈,執行鏈上有多個節點,每個節點都有機會(條件匹配)處理請求事務,如果某個節點處理完了就可以根據實際業務需求傳遞給下一個節點繼續處理或者返回處理完畢。
例如:Java EE中的Filter 使用責任鏈的變重。
2、介紹
主要解決:職責鏈上的處理者負責處理請求,客戶只需要將請求發送到職責鏈上即可,無須關心請求的處理細節和請求的傳遞,所以職責鏈將請求的發送者和請求的處理者解耦了。
優點: 1、降低耦合度。它將請求的發送者和接收者解耦。2、簡化了對象。使得對象不需要知道鏈的結構。3、增強給對象指派職責的靈活性。通過改變鏈內的成員或者調動它們的次序,允許動態地新增或者刪除責任。4、增加新的請求處理類很方便。
缺點: 1、不能保證請求一定被接收。2、系統性能將受到一定影響,而且在進行代碼調試時不太方便,可能會造成循環調用。3、可能不容易觀察運行時的特徵,有礙於除錯。
使用場景: 1、有多個對象可以處理同一個請求,具體哪個對象處理該請求由運行時刻自動確定。2、在不明確指定接收者的情況下,向多個對象中的一個提交一個請求。3、可動態指定一組對象處理請求。
3、示例代碼
XX系統對於用戶評論功能的語句分析,包含敏感詞(996等)進行修改後入庫。
定義Msg類
classMsg{
Stringname;
Stringmsg;
publicStringgetMsg(){
returnmsg;
}
publicvoidsetMsg(Stringmsg){
this.msg=msg;
}
@Override
publicStringtoString(){
return"Msg{"+