職責鏈模式(chain of responsibilities pattern)允許你將請求沿著處理者鏈進行傳送,處理者收到請求後,可以對請求進行處理,或者將其傳遞給下乙個處理者。
handler(抽象處理者):定義乙個處理請求的介面,並且聚合了乙個型別為自身的物件(後繼者),子類可以通過設定後繼者,將請求傳遞下去
concretehandler(具體處理者):具體處理者收到請求後,可以自己將請求處理,或者傳給後繼者。
request(請求):定義一些屬性,表示乙個請求
公司採購審批流程:請求,包含 id 和 **字段
public class purchaserequest
public int getid()
public float getprice()
}
抽象處理者
protected string name;
this.name = name;}}
/*** 處理請求
* @param request
*/public abstract void processrequest(purchaserequest request);
}具體處理者
public teamleader(string name)
@override
public void processrequest(purchaserequest request) else
}} public manager(string name)
@override
public void processrequest(purchaserequest request) else
}} public boss(string name)
@override
public void processrequest(purchaserequest request) else
}}測試類
public class client
}
執行結果
李組長審批了1號請求,**為5000.0
李組長審批了1號請求,**為5000.0
優點缺點適用場景 行為型 職責鏈模式
定義 將請求的傳送和接收解耦,讓多個接收物件都有機會處理這個請求。將這些接收物件串成一條鏈,並沿著這條鏈傳遞這個請求,直到鏈上的某個接收物件能夠處理它為止。在職責鏈模式中,多個處理器依次處理同乙個請求。乙個請求先經過 a 處理器處理,然後再把請求傳遞給 b 處理器,b 處理器處理完後再傳遞給 c 處...
設計模式 行為型模式 職責鏈模式
採購單 請求類 class purchaserequest public void setamount double amount public double getamount public void setnumber int number public int getnumber public...
設計模式 行為型 責任鏈模式
從擊鼓傳花談起 擊鼓傳花是一種熱鬧而又緊張的飲酒遊戲。在酒宴上賓客依次坐定位置,由一人擊鼓,擊鼓的地方與傳花的地方是分開的,以示公正。開始擊鼓時,花束就開始依次傳遞,鼓聲一落,假如花束在某人手中,則該人就得飲酒。擊鼓傳花的類圖結構如下 如果用乙個物件系統描述賈府,那麼賈母 賈赦 賈政 賈寶玉和賈環等...