責任鏈模式的基本設計與實現

2021-10-04 11:48:48 字數 1892 閱讀 3080

責任鏈是用一系列類(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...