Java中的責任鏈設計模式,太牛了

來源:https://my.oschina.net/u/3441184/blog/889552

責任鏈設計模式的思想很簡單,就是按照鏈的順序執行一個個處理方法,鏈上的每一個任務都持有它後面那個任務的對象引用,以方便自己這段執行完成之後,調用其後面的處理邏輯。

下面是一個責任鏈設計模式的簡單的實現:

Java中的責任鏈設計模式,太牛了

Java中的責任鏈設計模式,太牛了

Java中的責任鏈設計模式,太牛了

以上代碼是模擬了三個任務類,它們都實現了統一個接口,並且它們都一個構造函數,可以在它們初始化的時候就持有另一個任務類的對象引用,以方便該任務調用。

這個和服務器的過濾器有點類似,過濾器的實現也都是實現了同一個接口Filter。

Java中的責任鏈設計模式,太牛了

上面這段代碼就是一個任務鏈對象,它要做的事情很簡單,就是將所有要執行的任務都按照指定的順序串聯起來。

public class ChainTest {

public static void main(String[] args) {
LiabilityChain chain = new LiabilityChain();
chain.runChain();
}

}
當我們獲取到責任鏈對象之後,調用其方法,得到以下運行結果:
Java中的責任鏈設計模式,太牛了

以上是一個責任鏈的簡單的實現,如果想要深入理解其思想,建議去觀察一個過濾器鏈的執行源碼。


分享到:


相關文章: