책임 사슬 모델은 일부 명령 개체와 일련의 처리 개체를 포함하는 행동 모델입니다. 각 핸들러 객체는 자신이 처리할 수 있는 명령 객체를 결정하며, 처리할 수 없는 명령 객체를 체인의 다음 핸들러 객체에 전달하는 방법도 알고 있습니다. 패턴은 또한 처리 체인의 끝에 새로운 처리 객체를 추가하는 방법을 설명합니다.
주요 역할
추상적 책임 역할: 모든 책임이 지원하는 공개 메소드를 정의합니다.
구체적 책임 역할: 추상적 책임 인터페이스로 구현된 구체적인 책임
책임 사슬 역할: 책임 호출 규칙 설정
클래스 그림
예
<?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); ?>