1.什麼是責任鏈模式責任鏈模式就是將接受者物件連城一條鏈,並在該鏈上傳遞請求知道有乙個接受者物件處理它。
通過讓更多物件有機會處理請求,避免了請求傳送者和接受者之間的耦合。
責任鏈模式中,作為請求接受者的多個物件通過對其後繼的引用而連線起來的形成的一條鏈。
請求這這條鏈上傳遞,直到鏈上的某個接受者處理了這個請求,每個接受者都可以選擇自行處理請求或是向
後繼傳遞請求。
2.責任鏈模式如何解耦
發出請求的客戶端並不知道鏈上的哪乙個接受者會處理這個請求,從而實現了這個請求,從而實現了客戶端和
接受者之間的解耦
3.責任鏈模式的應用
執行效能相對比較耗時,占用記憶體
4.責任鏈模式原理圖:
* **處理人,負責處理客戶的折扣申請
* */
public abstract class pricehandler
/** 處理折扣申請
* */
public abstract void pricesdiscount(float discount);
}
public class saleman extends pricehandler else }}
public class manger extends pricehandler else }}
public class director extends pricehandler else }}
public class bigboss extends pricehandler else }}
public class pricehandle***ctory
}
public class client
public void requestdiscount(float discount)
}
主函式執行緒
client client = new client();
client.setpricehandler(pricehandle***ctory.createpricehandler());
random rand = new random();
for (int i = 0; i < 100; i++)
設計模式之 責任鏈模式
在一些情況下,對乙個訊息 含事件 的響應和處理需要很多物件來參與,這些物件對訊息的處理有前後順序,形成乙個處理鏈條,但物件是否真正處理訊息有賴於在它之前的物件的處理策略,前乙個物件處理後,後乙個物件則不需參與處理,這就是責任鏈模式。現實中有很多類似的場景,比如上訪,上訪一般是從最基層的信訪部門接受信...
設計模式之(責任鏈模式)
chain of responsibleity 責任鏈模式 在責任鏈模式 中,很多物件由每乙個物件對其下家的引用而接。起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。客戶並不知道鏈上的哪乙個物件最終處理這個請求,系統可以在不影響客戶端的情況下動態的重新組織鏈和分配責任。處理者...
設計模式之責任鏈模式
假設現在乙個公司的請假流程如下 一天及以下由小組組長審批,一天以上三天以下由經理審批,三天以上七天以下由老闆審批,七天以上直接勸退。如果每次請假時都很長的if else 來判斷該去找誰請假,很不容易擴充套件,我們使用責任鏈模式來實現。首先,是乙個抽象的父類 public abstract class...