常用設計模式 責任鏈模式

2021-10-08 22:07:54 字數 1636 閱讀 8942

多個物件都有機會處理請求,從而避免傳送者和接受者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳送這個請求,直到有乙個物件處理他為止。

碼雲位址位址:design_patterns

1.把複雜功能拆分處理,讓每個類只是負責乙個處理邏輯。復用性更好,組合更加靈活。

2.請求和處理類分開,實現低耦合,更加利於擴充套件。

1.責任鏈太長或者每條鏈判斷處理的時間太長會影響效能。特別是遞迴迴圈的時候。

2.不一定被處理,每個職責類的職責很明確,這就需要對寫預設的處理了。

責任鏈模式重要的兩點:分離職責,動態組合

處理者介面

public

inte***ce

handler

責任鏈抽象類, 負責維護鏈狀態和執行鏈方法

public

abstract

class

handlercontext

implements

handler

//遞迴呼叫處理方法

public

void

executor

(integer integer)

if(nexthandler != null)

}}

請求處理者1

public

class

handlerimpl

extends

handlercontext

@override

public boolean isok

(integer integer)

}

請求處理者2

public

class

handlerimpl2

extends

handlercontext

@override

public boolean isok

(integer integer)

}

請求處理者3

public

class

handlerimpl3

extends

handlercontext

@override

public boolean isok

(integer integer)

}

測試類

public

class

test

}

執行結果

執行1

執行2結果2:2

執行3

常用設計模式 責任鏈模式

責任鏈模式 chain of responsibility pattern 是一種常見的行為模式。使多個物件都有處理請求的機會,從而避免了請求的傳送者和接收者之間的耦合關係。將這些物件串成一條鏈,並沿著這條鏈一直傳遞該請求,直到有物件處理它為止。責任鏈模式的重點在 鏈上 由一條鏈去處理相似的請求,在...

常用設計模式 責任鏈模式 二

責任鏈模式在許多框架中都有很廣泛的應用,比如servlet中的filter,netty中的channel等,我們模擬servlet中的filter加深對責任鏈模式的理解,實現請求從a b c b a的執行順序。碼雲位址位址 design patterns 建立filter介面 public inte...

設計模式 責任鏈模式

定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...