PHP设计模式之责任链模式

<?php

/**
 * 2020-6-3 Xun
 * Responsibility(责任链模式)
 * 用举报举列子,班长,老师,校长
 * 在面向对象设计法则中有一个开闭原则:对修改封闭,对扩展开放
 * 适配器说白了就是不改变原有类的基础上通过继承父类,把父类的一些数据进行操作以达到合适的结果
 */
//班长类
class monitor{
    //三级及三级以下事件让班长处理
    private $num=3;

    //班长处理不了的请求上一级老师处理
    private $top='teacher';

    //处理方法
    public function deal($type)
    {
        //判断事件程度
        if($this->num>=$type){
            echo '问题不大,班长处理';
        }else{
            //班长无法处理,请求老师处理
            $obj=new $this->top;
            $obj->deal($type);
        }
    }
}

//老师类
class teacher{
    //八级及八级以下事件让班长处理
    private $num=8;

    //老师处理不了的请求上一级校长处理
    private $top='principal';

    //处理方法
    public function deal($type)
    {
        //判断事件程度
        if($this->num>=$type){
            echo '问题不太严重,老师能够处理';
        }else{
            //老师无法处理,请求校长处理
            $obj=new $this->top;
            $obj->deal($type);
        }
    }
}

//校长类
class principal{

    private $num=null;

    private $top=null;

    //处理方法
    public function deal($type)
    {
        echo '问题严重,校长出马处理';
    }
}

//实例化班长类
$obj=new monitor();
$obj->deal(50);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值