責任連鎖モデルは、いくつかのコマンド オブジェクトと一連の処理オブジェクトを含む動作モデルです。各ハンドラー オブジェクトは、どのコマンド オブジェクトを処理できるかを決定します。また、処理できないコマンド オブジェクトをチェーン内の次のハンドラー オブジェクトに渡す方法も認識します。このパターンでは、新しい処理オブジェクトを処理チェーンの最後に追加する方法も説明します。
主な役割
抽象的な責任の役割: すべての責任によってサポートされるパブリック メソッドを定義します。
具体的な責任ロール: 抽象的な責任インターフェイスで実装された具体的な責任
責任の連鎖ロール: 責任の呼び出しルールを設定する
クラス図
インスタンス
<?php abstract 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); ?>