unity設計模式-----責任鏈模式
阿新 • • 發佈:2018-11-28
責任鏈模式的定義:責任鏈模式指的是--某個請求需要多個物件進行處理,從而避免請求的傳送者和接收之間的耦合關係,將這些物件連成一條鏈子,並沿著這條鏈子傳遞請求,直到有物件處理它為止
例如:
從生活中的例子可以發現,某個請求可能需要幾個人的審批,即使技術經理審批完了,還需要上一級的審批.
責任鏈模式的結構圖
即有A,B,C,D四個工人,他們都具備兩個能力
1.自己工作的擰螺絲方法
2.下一步讓誰做
主要涉及兩個角色:
1>抽象處理者角色(Handler):定義出一個處理請求的介面,這個介面通常由介面或抽象類來實現
2>具體處理者角色(ConcreteHandler):具體處理者接受到請求後,可以選擇將該請求處理掉,或者將請求傳給下一個處理者,因此,每個具體處理者需要儲存下一個處理者的引用.以便把請求傳遞下去
責任鏈模式的使用場景
1>一個系統的審批需要多個物件才能完成處理的情況下,例如請假系統
2>程式碼中存在多個if--else語句的情況下,此時可以考錄使用責任鏈模式進行程式碼進行重構
責任鏈模式的優缺點:
優點:
(1)降低了請求的傳送者和接收者之間的耦合
(2)把多個條件判定分散到各個處理類中,使得程式碼更加清晰,責任更加明確
缺點:
(1)在找到正確的處理物件之前,所有的條件判定都要執行一遍,當責任鏈過長時,可能會引起效能問題
(2)可能導致某個請求不被處理