設計模式之十二 責任鏈模式

2021-10-17 23:15:49 字數 452 閱讀 5662

定義:

使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係, 將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理他為止

業務場景:

多個不同物件可以處理同乙個請求,具體由哪乙個物件處理,由業務規則動態確定。例如常見的流程審批、框架中的請示過濾等等。

動物園來了:

喂動物,對食物肯定還是有要求的。比如要先檢查是不是三無產品,再看看有沒有營養,最後檢測質量是否合格等等。這幾個流程,可能由於動物、食物的不同而不同。此時就需要抽象檢測動作,靈活組裝,結合工廠,組成不同的責任鏈來完成不同食物的檢測。

與裝飾器模式的不同:

裝飾器本質是對某一方法或介面的加強,強調的是在不破壞原有類的情況下派生新的方法。

責任鏈強調的是處理物件統一,動作統一,靈活組裝等等。與加強、修飾等無關。雖然在特定情況下兩者會表現出類似現象,但有本質不同。

以上

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

今天來看看什麼是責任鏈模式。責任鏈,從字面意思可以看出,不同的責任連起來,成為一條責任鏈,針對不同的情況,在這條鏈上尋找對應的處理辦法。官方定義 使多個物件都有機會處理請求,從而避免了請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止。責任鏈模式的...

JAVA設計模式(十二)設計模式之責任鏈設計模式

本章講解設計模式中責任鏈設計模式的相關知識 1.概念 試想下面的場景 某公司審批財務撥款購買裝置,小於10萬元的貨物由主任批示,大於10萬且小於100萬的貨物由經理批示,大於100萬的貨物由總經理批示。那麼如何實現這個邏輯呢?那麼我們首先想到的就是使用傳統的if.else來進行處理,但是對於業務複雜...

設計模式之 責任鏈模式

在一些情況下,對乙個訊息 含事件 的響應和處理需要很多物件來參與,這些物件對訊息的處理有前後順序,形成乙個處理鏈條,但物件是否真正處理訊息有賴於在它之前的物件的處理策略,前乙個物件處理後,後乙個物件則不需參與處理,這就是責任鏈模式。現實中有很多類似的場景,比如上訪,上訪一般是從最基層的信訪部門接受信...