一、問題
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...