文档章节

责任链模式

eatnothing
 eatnothing
发布于 2017/08/31 20:17
字数 217
阅读 12
收藏 0

责任链模式

使多个对象有机会处理请求,从而避免了请求者和发送者的耦合关系,将这些对象连城一条链,并沿着这条链传递请求,直到有人处理它

#####组成

  • 请求者(也可以有抽象类)
  • 抽象管理者
  • 实体管理者(>2)
<?php

/**
 * User: didi
 * Date: 2017/8/31
 * Time: 下午5:20
 */
class Request {
    public $name;
    public $num;
}


abstract class  Manager {
    protected $name;
    protected $manager;

    public function __construct($_name){
        $this->name = $_name;
    }


    public function setManager(Manager $manager){
        $this->manager = $manager;
    }

    abstract function apply(Request $request);
}


class Father extends Manager {
    public function __construct($name){
        parent::__construct($name);
    }

    public function apply(Request $request){


        if ($request->num != 5) {
            echo 'this is not 5';
        } else {
            $this->manager->apply($request);
        }

    }
}

class GrandFather extends Manager {
    public function __construct($name){
        parent::__construct($name);
    }

    public function apply(Request $request){
        
        echo 'fuck this is ur grandFather';

    }
}


class Client {


    public function __construct(){
        $re = new Request();
        $re->num = 5;
        $father  = new Father('fucker');
        $grand_father = new GrandFather('mother');

        $father->setManager($grand_father);


        $father->apply($re);

    }
}


$a = new Client();

© 著作权归作者所有

共有 人打赏支持
eatnothing
粉丝 36
博文 128
码字总数 68736
作品 0
昌平
程序员

暂无文章

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
34分钟前
0
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
1
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
1
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
3
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部