責任鏈模式是一種物件的行為模式,就是用來處理相關事務責任的一條執行鏈,執行鏈上有多個節點,每個節點都有機會(條件匹配)處理請求事務,如果某個節點處理完了就可以根據實際業務需求傳遞給下乙個節點繼續處理或者返回處理完畢。
我們在遇到需要對一條資料進行處理,處理到乙個標準,直到這個獲取的結果滿足這個標準。
1、定義乙個抽象處理器,來規定具體需要處理的方法。
2、handlerchaincontext handler上下文,主要負責維護鏈,和鏈的執行
1、處理器
// 處理器抽象類
public abstract class abstracthandler
@component
@order(10)
class handler1 extends abstracthandler
// 繼續執行下乙個
return handlerchaincontext.runnext(arg0);
}}@component
@order(20)
class handler2 extends abstracthandler
// 繼續執行下乙個
return handlerchaincontext.runnext(arg0);}}
2、handler上下文
/**
* handler上下文,主要負責維護鏈,和鏈的執行
*/public class handlerchaincontext
});}
public handlerchaincontext(abstracthandler handler)
public t handler(object arg0)
/*** 繼續執行下乙個
*/t runnext(object arg0)
return null;
}public t requestprocess(object arg0)
public void addlast(abstracthandler handler)
context.next = new handlerchaincontext(handler);}}
3、客戶端
@service
public class chainmodeldemo
string result = handlerchaincontext.requestprocess("執行入參");
system.out.println(result);}}
執行結果
責任鏈模式
責任鏈模式 chain of responsibility 的目標是使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。舉個例子。你到銀行去辦理業務,只是簡單的存個錢,也許atm就解決你的問題。如果你是為了交費...
責任鏈模式
有3個request與3個handler,每個request由相應的handler來處理,當乙個handler與request不匹配時則傳遞給下乙個handler來處理 inte ce request class request1 implements request class request2 ...
責任鏈模式
了解了一下責任鏈模式,簡單的說下自己的理解吧 責任鏈就是說待處理的資料在request的時候,先經過filter1的處理,再經過filter2的處理,然後response時,先經過filter2的處理,在經過filter1的處理。實現思路是filterchain包括filter1和filter2,同...