1. 程式人生 > >unity設計模式-----責任鏈模式

unity設計模式-----責任鏈模式

責任鏈模式的定義:責任鏈模式指的是--某個請求需要多個物件進行處理,從而避免請求的傳送者和接收之間的耦合關係,將這些物件連成一條鏈子,並沿著這條鏈子傳遞請求,直到有物件處理它為止

例如:

從生活中的例子可以發現,某個請求可能需要幾個人的審批,即使技術經理審批完了,還需要上一級的審批.

 

 

責任鏈模式的結構圖

即有A,B,C,D四個工人,他們都具備兩個能力

1.自己工作的擰螺絲方法

2.下一步讓誰做

 

主要涉及兩個角色:

1>抽象處理者角色(Handler):定義出一個處理請求的介面,這個介面通常由介面或抽象類來實現

2>具體處理者角色(ConcreteHandler):具體處理者接受到請求後,可以選擇將該請求處理掉,或者將請求傳給下一個處理者,因此,每個具體處理者需要儲存下一個處理者的引用.以便把請求傳遞下去

 

責任鏈模式的使用場景

1>一個系統的審批需要多個物件才能完成處理的情況下,例如請假系統

2>程式碼中存在多個if--else語句的情況下,此時可以考錄使用責任鏈模式進行程式碼進行重構

 

 

責任鏈模式的優缺點:

優點:

(1)降低了請求的傳送者和接收者之間的耦合

(2)把多個條件判定分散到各個處理類中,使得程式碼更加清晰,責任更加明確

缺點:

(1)在找到正確的處理物件之前,所有的條件判定都要執行一遍,當責任鏈過長時,可能會引起效能問題

(2)可能導致某個請求不被處理