責任鏈模式: 使多個物件都有機會處理請求,從而避免了請求的傳送者和接受者之間的耦合關係,將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,只到有物件處理他未止.
使用場景:
多個物件可以處理同乙個請求,但具體由哪個物件處理則在執行時動態覺得
在請求處理者不明確的情況下向對個物件中的乙個提交乙個請求
需要動態指定一組物件處理請求
對於職責鏈中的乙個處理者物件,其只有兩個行為,一是處理請求, 二是將請求轉送給下乙個節點,不允許某個處理者物件在處理了請求後又將請求轉送給上乙個節點的情況.
責任鏈模式在android原始碼中比較類似的實現是對事件的分發處理.
當客戶提交乙個請求時,請求時沿鏈傳遞至有乙個物件複雜處理它, 這樣使得接受者和傳送者都沒有對方的明確資訊,且鏈中的物件也並不知道鏈的結構,結果是職責鏈可簡化物件的相互連線,他們僅需保持乙個指向其後繼者的引用,而不需保持它所有的候選接受者的引用.這也就大大的降低了耦合度.
學習設計模式 責任鏈模式
說明 使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係,將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理他為止。需求 請假審批 解決方式 a.定義乙個處理者抽象類,宣告處理方法,定義乙個處理者類,定義設定下個處理者的方法 b.分別定義處理者實現類 處理者實現類2...
設計模式 責任鏈模式學習
責任鏈模式,顧名思義,就是將需要實現的功能,拆分為各自專一的責任,組成一條責任鏈,來完成對資料的處理。先看下面一段demo 需要被處理的物件類 data public class user 責任處理器介面 public inte ce filter責任處理器的兩個介面 public class fi...
設計模式 責任鏈模式
定義 避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些請求連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。例項 請假加薪審批 using system using system.collections.generic using system.text namespa...