概念:在責任鏈模式裡,很多的物件由每乙個物件對其下家的引用而連線起來的形成一條鏈,請求在這個鏈上傳遞,直到鏈上的某乙個物件處理此請求。發出這個請求的客戶端並不知道鏈上的哪乙個物件最終處理這個請求,這使得系統可以在不影響客戶端的情況下動態地重新組織鏈和分配責任。
典型案例:擊鼓傳花。
abstract class player
protected void setusing(player player)
public void next(int i )
else}}
class jiamu extends player
@override
public void handle(int i)
else}}
public class demo
}class jiashe extends player
@override
public void handle(int i)
else
}}
責任型模式涉及到哪些角色:
抽象處理者角色(player)
具體處理者角色(jiaxx)
純與不純的責任鏈模式
乙個責任鏈模式兩要素:
1.要求乙個具體處理者物件有且只能在兩個責任裡選擇一種執行:(1).承擔責任,(2)傳遞責任到下乙個
2.乙個請求必須被某乙個物件處理者所承擔責任
符合1,2----->純責任鏈模式
符合1 ------>不純責任鏈模式(大多屬於不純)
什麼情況下使用:
第一:系統已經有乙個由處理者物件組成的鏈
第二:對於多於乙個處理者物件會處理乙個請求,並且事先不知道會由那個物件處理。
第三:當系統想發出乙個請求給多個處理者物件的某乙個,但不明確指出哪乙個處理者物件會處理此請求。
第四:當處理乙個請求的處理者物件集合需要動態的指定時。
可以是一條鏈,乙個樹,乙個環。
設計模式 行為型模式 責任鏈模式
設計模式 行為型模式 責任鏈模式 將請求沿著鏈傳遞,然後直到物件處理即可。邏輯如上,只處理1,2,3情況,其餘的情況都不處理。物件 public class level public boolean above level level 將物件進行封裝 public class request pub...
設計模式(六) 責任鏈模式
使多個物件都有機會處理請求,從而避免了請求的傳送者和接收者之間的耦合關係,將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止。類圖比較簡單 抽象處理者 package responsechain public abstract class handler 每個處理者都有乙個處理級別 ...
設計模式 行為型模式,責任鏈模式(10)
顧名思義,責任鏈模式 chain of responsibility pattern 為請求建立了乙個接收者物件的鏈。這種模式給予請求的型別,對請求的傳送者和接收者進行解耦。這種型別的設計模式屬於行為型模式。在這種模式中,通常每個接收者都包含對另乙個接收者的引用。如果乙個物件不能處理該請求,那麼它會...