責任鏈模式在許多框架中都有很廣泛的應用, 比如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)
執行結果可以看到核心思想為filter持有filterchain的引用物件, filterchain維護filter鏈。在filter子類實現中通過呼叫filterchain.dofilter(request, response)方法完成對filterchain的遞迴呼叫。執行http***
執行socket***
執行file***
執行file2***
執行socket2***
執行http2***
常用設計模式 責任鏈模式
責任鏈模式 chain of responsibility pattern 是一種常見的行為模式。使多個物件都有處理請求的機會,從而避免了請求的傳送者和接收者之間的耦合關係。將這些物件串成一條鏈,並沿著這條鏈一直傳遞該請求,直到有物件處理它為止。責任鏈模式的重點在 鏈上 由一條鏈去處理相似的請求,在...
常用設計模式 責任鏈模式
多個物件都有機會處理請求,從而避免傳送者和接受者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳送這個請求,直到有乙個物件處理他為止。碼雲位址位址 design patterns 1.把複雜功能拆分處理,讓每個類只是負責乙個處理邏輯。復用性更好,組合更加靈活。2.請求和處理類分開,實現低耦合,更...
設計模式 責任鏈模式
定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...