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

  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/Caoxt/p/10109481.html
Copyright © 2011-2022 走看看