責任鏈是用一系列類(classes)試圖處理乙個請求request,這些類之間是乙個鬆散的耦合,唯一共同點是在他們之間傳遞request. 也就是說,來了乙個請求,a類先處理,如果沒有處理,就傳遞到b類處理,如果沒有處理,就傳遞到c類處理,就這樣象乙個鏈條(chain)一樣傳遞下去。
優點降低耦合度。它將請求的傳送者和接收者解耦
簡化了物件,使得物件不需要知道鏈的結構
增強給物件指派職責的靈活性,允許動態地新增或者刪除責任鏈
增加新的請求處理類方便
缺點不能保證請求一定被接收;
系統效能將受到一定影響,除錯時不方便,可能會造成迴圈呼叫
建立請求基類,後續待具體的實現類繼承;
/**
* 實現類的父類
* @version
*/public
inte***ce
validatorhanlder
建立chain
/**
* chain模板實現
* @time 2023年3月23日 下午2:00:28
*/public
abstract
class
pcvalidatorhanlder
implements
validatorhanlder
/** * 序列處理
* @param params
*/@override
public
void
process
(object params)
/** * 真實處理
* @param params
*/protected
abstract
void
subprocess
(object params)
;}
建立責任鏈執行類
/**
* * 校驗cbs引用的執行類
* @time 2023年3月25日 下午2:30:02
*/public
class
validatorexecute
/** * 呼叫請求
* @param request
*/public
void
dochain
(object request)
}
新增具體的實現類
/**
* bvalidator
* @time 2023年3月23日 下午2:03:15
*/public
class
bvalidator
extends
pcvalidatorhanlder
}
/**
* cvalidator
* @time 2023年3月23日 下午2:03:15
*/public
class
cvalidator
extends
pcvalidatorhanlder
}/**
* mvalidator
* @time 2023年3月23日 下午2:03:15
*/public
class
mvalidator
extends
pcvalidatorhanlder
}
執行類的呼叫
new
projectcbsvalidatorexecute()
.dochain
(pk_project)
;
Java與設計模式 責任鏈模式
責任鏈模式屬於行為型設計模式之中的乙個,怎麼理解責任鏈?責任鏈是能夠理解成數個物件首尾連線而成,每個節點就是乙個物件。每個物件相應不同的處理邏輯,直至有乙個物件響應處理請求結束。這一種模式成為責任鏈模式。生活中能夠找到責任鏈模式的原型嗎?這樣的樣例非常多。比方你要去買房子。首先是銷售人員 物件1 接...
設計模式 責任鏈
使用情況描述 某人向銀行借錢 借1w一下一般櫃員就可以解決,借2w一下一般經理就能解決,如果借更多就需要主管才能解決。這就是乙個責任鏈,根據條件的不同,分別進行複雜的邏輯運算。if,switch都可以進行這樣的操作,但是需要在每一層進行一次複雜的操作。責任鏈模式是一種物件的行為模式。在責任鏈模式裡,...
責任鏈設計模式
責任鏈的應用場景 簡單使用責任鏈模式拆分 servlet api 中的過濾器 模擬servlet中的request物件 desc模擬 servlet 中的 request 物件 模擬servlet中的response物件 desc模擬 servlet 中的 response 物件 過濾器抽象層 de...