php實現設計模式之 職責鏈模式

2022-02-15 15:50:18 字數 804 閱讀 2311

<?php 

/**

* 職責鏈模式

* * 為解除請求的傳送者和接收者之間的耦合,而使用多個物件都用機會處理這個請求,將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它

*抽象處理者角色:定義乙個處理請求的介面,和乙個後繼連線(可選)

具體處理者角色:處理它所負責的請求,可以訪問後繼者,如果可以處理請求則處理,否則將該請求轉給他的後繼者。

客戶類:向乙個鏈上的具體處理者concretehandler物件提交請求。

* */

/*職責鏈模式相對來說是比較靈活的,鏈可以設定成直,環形均可

* * 還有純的責任鏈,不純的責任鏈

*///抽象處理者角色,一般包含兩個方法:處理請求,為請求設定繼任者

abstract class handler

abstract public function executerequest($request);

} //具體的處理者,如果能處理,自己處理,不能處理,留給下乙個繼任者

class leader extends handlerelse

}}class director extends handlerelse }}

class manager extends handlerelse }}

//請求

class request

}class client

public function main2()

}client::main2();

?>

uml類圖如下:

PHP 設計模式 職責鏈模式

author 咔咔 wechat fangkangfk 什麼是職責鏈模式 職責鏈模式是包含了一些命令物件和一些處理物件,每個處理物件決定他能處理的那些命令物件,它也知道把自己不能處理的命令物件移交給下乙個處理物件 白話解釋 這個案例一共三個職位,是經理,總監,總經理,職位就類似命令物件,請假這件事就...

設計模式之職責鏈模式

如果我們現在有乙個需求,乙個人他生了病,這個病要在 醫院才能看,但是這個病人並不清楚,就先去了一級醫院,一級醫院的醫生告訴他你的病要去二級醫院看,二級醫院也告訴他 你的病我這裡看不了,你要去 醫院才能看,最後他去 醫院把病看好了.這個過程直接寫成 class patient this.patient...

設計模式之職責鏈模式

職責鏈模式 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。適用場景 1 有多個的物件可以處理乙個請求,哪個物件處理該請求執行時刻自動確定 2 在不明確指定接收者的情況下,向多個物件中的乙個提交乙個請求 ...