責任鏈模式(Iterator Pattern)是行為型設(shè)計模式之一
將每一個節(jié)點看做一個對象,每一個對象擁有不同的處理邏輯,將一個請求從鏈式的首端發(fā)出襟雷,沿著鏈的路徑依次傳遞給每一個對象端三,直到有對象處理這個請求為止锯茄。我們將這樣的一種模式稱為責任鏈模式
定義
使很多對象都有機會處理請求搔驼,從而避免了請求的發(fā)送者和接收者直接的耦合關(guān)系谈火。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求舌涨,直到有對象處理它為止糯耍。
靈活之處在于請求的發(fā)起可以從責任鏈的任何一個節(jié)點處開始
對于責任鏈中的一個處理者對象,其只有兩個行為囊嘉,一是處理請求温技,二是將請求轉(zhuǎn)送給下一個節(jié)點,不允許某個處理中對象在處理了請求后又將請求轉(zhuǎn)送給上一個節(jié)點的情況扭粱。
純的責任鏈
對于一條責任鏈來說舵鳞,一個請求最終只有兩種情況,一是被某個對象所處理琢蛤,稱該責任鏈為純的責任鏈
不純的責任鏈
另一個是所有的對象均未對其處理蜓堕,稱為不純的責任鏈
Android 源碼中的責任鏈模式
事件的分發(fā)處理
Handler 處理消息使用的設(shè)計模式也是責任鏈模式