常用設計模式之責任鏈模式及其PHP實現
責任鏈模式是一種行為型模式,它包含了一些命令對象和一系列的處理對象。每一個處理對象決定它能處理哪些命令對象,它也知道如何將它不能處理的命令對象傳遞給該鏈中的下一個處理對象。該模式還描述了往該處理鏈的末尾添加新的處理對象的方法。
主要角色抽象責任(Responsibility)角色:定義所有責任支持的公共方法。具體責任(Concrete Responsibility)角色:以抽象責任接口實現的具體責任責任鏈(Chain of responsibility)角色:設定責任的調用規則類圖<?phpabstract class Responsibility { // 抽象責任角色 protected $next; // 下一個責任角色 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);?>
相關文章: