設計模式學習筆記二十一 職責鏈模式概念

2021-10-06 06:04:43 字數 728 閱讀 6513

一、問題

1、學校oa系統的採購專案需求

1)採購員採購器材

2)金額小於等於5000,由教學主任審批(0<= x <= 5000)

3)金額小於等於10000,由院長審批(5000<= x <= 10000)

4)金額小於等於3000,由副校長審批(10000<= x <= 30000)

5)金額超過30000,由教學主任審批(300002、不用設計模式傳統方式

2)分析:客戶端在這裡會使用到分支判斷(switch 等)來對不同的採購請求處理,這樣就存在如下問題

3、職責鏈模式

1)職責鏈模式(chain of responsibility pattern),又叫責任鏈模式,未請求建立乙個接受者物件的鏈。對請求傳送者和接受者進行解耦。

2)職責鏈模式通常每乙個接受者都包含對另乙個接受者的引用。如果乙個物件不能處理該請求,那麼它會把相同的請求傳給下乙個接受者,依次類推,指導有乙個物件處理它為止。

3)屬於行為設計模式

4、handler:抽象的處理者,定義了乙個處理請求的介面,同時包含另外handler

concretehandlera/b 具體的處理者,處理它自己負責的請求,可以訪問它的後繼者(即下乙個處理者),如果可以處理當前請求,則處理,否則就請請求交給後繼者去處理,從而形成乙個職責鏈。

request:表示請求(有屬性)

client 呼叫方 

5、springmvc請求就是呼叫的職責鏈模式

設計模式筆記(二十) 職責鏈模式

職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者接收者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。優點 當客戶提交乙個請求時,請求是沿鏈傳遞直到有乙個concretehandler物件負責處理它。...

設計模式(二十) 職責鏈模式

職責鏈模式,使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。1.如下 using system namespace chainofresponsibility using system namespace...

設計模式(二十)職責鏈模式

職責鏈模式 chain of responsbility 使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件啊連城一條鏈,並沿著這條鏈傳遞改請求,直到有乙個物件處理他為止 public abstract class handler 處理請求的抽象方法 public a...