常用設(shè)計模式之責(zé)任鏈模式及其PHP實現(xiàn)
責(zé)任鏈模式是一種行為型模式,它包含了一些命令對象和一系列的處理對象。每一個處理對象決定它能處理哪些命令對象,它也知道如何將它不能處理的命令對象傳遞給該鏈中的下一個處理對象。該模式還描述了往該處理鏈的末尾添加新的處理對象的方法。
主要角色抽象責(zé)任(Responsibility)角色:定義所有責(zé)任支持的公共方法。具體責(zé)任(Concrete Responsibility)角色:以抽象責(zé)任接口實現(xiàn)的具體責(zé)任責(zé)任鏈(Chain of responsibility)角色:設(shè)定責(zé)任的調(diào)用規(guī)則類圖<?phpabstract class Responsibility { // 抽象責(zé)任角色 protected $next; // 下一個責(zé)任角色 public function setNext(Responsibility $l) {$this->next = $l;return $this; } abstract public function operate(); // 操作方法} class ResponsibilityA extends Responsibility { public function __construct() {} public function operate(){if (false == is_null($this->next)) { $this->next->operate();} };}class ResponsibilityB extends Responsibility { public function __construct() {} public function operate(){if (false == is_null($this->next)) { $this->next->operate();} };} $res_a = new ResponsibilityA();$res_b = new ResponsibilityB();$res_a->setNext($res_b);?>
相關(guān)文章:
1. 基于PHP做個圖片防盜鏈2. php使用正則驗證密碼字段的復(fù)雜強度原理詳細講解 原創(chuàng)3. ASP.NET MVC使用Boostrap實現(xiàn)產(chǎn)品展示、查詢、排序、分頁4. XML在語音合成中的應(yīng)用5. jscript與vbscript 操作XML元素屬性的代碼6. asp.net core 認證和授權(quán)實例詳解7. ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字8. 如何使用ASP.NET Core 配置文件9. .NET中實現(xiàn)對象數(shù)據(jù)映射示例詳解10. 基于javaweb+jsp實現(xiàn)企業(yè)車輛管理系統(tǒng)
