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

2021-10-08 22:32:46 字數 1474 閱讀 2914

責任鏈模式在許多框架中都有很廣泛的應用, 比如servlet中的filter, netty中的channel等, 我們模擬servlet中的filter加深對責任鏈模式的理解, 實現請求從a->b->c->b->a的執行順序。

碼雲位址位址:design_patterns

建立filter介面

public

inte***ce

filter

建立fileterchian

public

inte***ce

filterchain

public

class

implements

filterchain

(filter

> nextfilter)

return

this;}

@override

public

void

dofilter

(request request, response response)

}}

建立filter介面實現類, httpfilter,socketfilter,filefilter

}

執行測試

public

static

void

main

(string[

] args)

執行結果

執行http***

執行socket***

執行file***

執行file2***

執行socket2***

執行http2***

可以看到核心思想為filter持有filterchain的引用物件, filterchain維護filter鏈。在filter子類實現中通過呼叫filterchain.dofilter(request, response)方法完成對filterchain的遞迴呼叫。

常用設計模式 責任鏈模式

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

常用設計模式 責任鏈模式

多個物件都有機會處理請求,從而避免傳送者和接受者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳送這個請求,直到有乙個物件處理他為止。碼雲位址位址 design patterns 1.把複雜功能拆分處理,讓每個類只是負責乙個處理邏輯。復用性更好,組合更加靈活。2.請求和處理類分開,實現低耦合,更...

設計模式 責任鏈模式

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