聲明:本系列部落格參考資料《大話設計模式》,作者程傑。
職責鍊模式(又叫責任鍊模式)包含了一些指令對象和一些處理對象,每個處理對象決定它能處理那些指令對象,它也知道應該把自己不能處理的指令對象交下一個處理對象,該模式還描述了往該鍊添加新的處理對象的方法。
UML類圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQ3chVEa0V3bT9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVP9cXT4VERNhHatFmdRhlW1VTaitmTzkVdjJjYzpkMMZ3bENGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3P0UzMxEzNzATMxEjNwUTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
角色:
抽象處理者(Manager):定義出一個處理請求的接口。如果需要,接口可以定義出一個方法,以設定和傳回對下家的引用。這個角色通常由一個抽象類或接口實作。
具體處理者(CommonManager):具體處理者接到請求後,可以選擇将請求處理掉,或者将請求傳給下家。由于具體處理者持有對下家的引用,是以,如果需要,具體處理者可以通路下家。
核心代碼:
調用用戶端代碼:
适用場景:
1、有多個對象可以處理同一個請求,具體哪個對象處理該請求由運作時刻自動确定。
2、在不明确指定接收者的情況下,向多個對象中的一個送出一個請求。
3、可動态指定一組對象處理請求。
至此,PHP設計模式系列教程全部更新結束,歡迎大家批評指正。你的隻言片語是我前進的動力。
歡迎關注我的視訊課程,位址如下,謝謝。
<a target="_blank" href="http://edu.csdn.net/course/detail/602"> PHP面向對象設計模式</a>