在責任鏈模式裡,很多物件由每乙個物件對其下家的引用而連線起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。發出這個請求的客戶端並不知道鏈上的哪乙個物件最終處理這個請求,這使得系統可以在不影響客戶端的情況下動態地重新組織和分配責任。
擊鼓者(client)+ 花球(request) + 眾人組成(handler chain)
不同的折扣 level , 需要不同的管理層級的人員(ceo,vice president,director,manager,sales)來批准。 客戶不在乎是誰處理了這個請求,只要得到它要的折扣就行了。 # 如何實現責任鏈模式
/* * **處理人,負責處理客戶折扣申請
*/public
abstract
class
pricehandler
/** 處理折扣申請
*/public
abstract
void
processdiscount(float discount);
}
package com.imooc.pattern.cor.handler;
public
class
pricehandle***ctory
}
package com.imooc.pattern.cor.handler;
/* * 銷售, 可以批准5%以內的折扣
*/public
class
sales
extends
pricehandler else}}
發出這個請求的客戶端並不知道鏈上的哪乙個物件最終處理這個請求,這使得系統可以在不影響客戶端的情況下動態地重新組織和分配責任。
java責任鏈模式
責任鏈模式定義如下 使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合關 系。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止。package cn.yang.test.controller created by dev yang on 2016 3 1.publ...
Java 責任鏈模式
責任鏈模式定義 將能夠處理同一類請求的物件連成一條鏈,所提交的請求沿鏈傳遞,鏈上的物件逐個判斷是否有能力處理該請求,如果能,則自己處理,如果不能,則傳遞給鏈上的下乙個物件。責任鏈模式常見的使用場景 1.接力賽跑 2.公司的公文審批 3.大學裡,獎學金審批流程等。責任鏈主要的作用 責任鏈上的處理者,負...
Java的責任鏈模式
1.責任鏈模式是一種物件的行為模式。在責任鏈模式裡,很多物件由每乙個物件對其下家的引用而連線起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。發出這個請求的客戶端並不知道鏈上的哪乙個物件最終處理這個請求,這使得系統可以在不影響客戶端的情況下動態地重新組織和分配責任。2.結構圖 ...