zoukankan      html  css  js  c++  java
  • 设计模式(四)--责任链模式

    责任链模式: 为请求创建了一个接收者对象的链,并沿这条链传递该请求,直到有对象处理它为止。这种模式能够给予请求的类型,对请求的发送者和接收者进行解耦。

    责任链模式最显著的优点就是将请求和处理分开,请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌,两者解耦。

    避免超长链的出现

    简单实例:员工请假时,请假1天需小领导批准;请假两天需中领导批准,请假三天需大领导批准。

    <?php
    class smLeader{
        public $leder_no=1;
        public $up='mdLeader';
    
        public function approval($day){
            if($this->leder_no>=$day){
                echo '小领导批准';
            }else{
                $up=new $this->up();
                $up->approval($day);
            }
        }
    }
    class mdLeader{
        public $leder_no=2;
        public $up='lgLeader';
    
        public function approval($day){
            if($this->leder_no>=$day){
                echo '中领导批准';
            }else{
                $up=new $this->up();
                $up->approval($day);
            }
        }
    }
    
    class lgLeader{
        public $leder_no=3;public function approval($day){
            echo '大领导批准';
        }
    }
    
    $sm=new smLeader();
    
    $sm->approval(3);

    参考连接:http://video.1kejian.com/video/?79018-0-10.html

  • 相关阅读:
    onlyoffice 宋体显示问题排查
    【记录】shell脚本简写
    java 读取jar包内文件方法
    clickhouse升级
    grafana安装升级部署
    grafana新增插件
    ogg复制进程集成模式与经典模式之间切换
    ogg主库目录迁移
    goldengate从库目录迁移
    goldengate如何判断数据是否完成同步
  • 原文地址:https://www.cnblogs.com/Caoxt/p/10109481.html
Copyright © 2011-2022 走看看