PHP设计模式 - 责任链模式

Posted Share112

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP设计模式 - 责任链模式相关的知识,希望对你有一定的参考价值。

这种模式有另一种称呼:控制链模式。它主要由一系列对于某些命令的处理器构成,每个查询会在处理器构成的责任链中传递,在每个交汇点由处理器判断是否需要对它们进行响应与处理。每次的处理程序会在有处理器处理这些请求时暂停。

 

<?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();
            echo ‘Res_A start‘."<br>";
        }
    }
}

class ResponsibilityB extends Responsibility {
    public function __construct() {}
    public function operate(){
        if (false == is_null($this->next)) {
            $this->next->operate();
            echo ‘Res_B start‘;
        }
    }
}

$res_a = new ResponsibilityA();
$res_b = new ResponsibilityB();
$res_a->setNext($res_b);
$res_a->operate();//输出:Res_A start

 

以上是关于PHP设计模式 - 责任链模式的主要内容,如果未能解决你的问题,请参考以下文章

PHP设计模式 - 责任链模式

责任链模式和php实现

php设计模式责任链模式

php设计模式之责任链模式

设计模式责任链模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

php设计模式之面向过程实现举报功能实例代码