zoukankan      html  css  js  c++  java
  • php责任链模式

    php 责任链模式

    又叫职责链模式。包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的方法。

    示例情景一:

             当用户发布一个帖子时:

             如果版主可以决定,就版主处理;

             如果版主不能决定,就交给上一级管理员处理;

             如果管理员不能决定,就交给上一级治安部门处理;

    示例情景二:

             当一个员工请假时:

             如果组长可以决定,就组长处理;

             如果组长不能决定,就交给上一级主管处理;

             如果主管不能决定,就交给上一级经理处理;

             如果经理不能决定,就交给上一级人事处理。


     以情景一示例:

    
    //示例:当处理一个帖子时,
    //如果不文明严重程度处理
    //1级,版主删帖
    //2级,管理员封账号
    //3级,治安部门管理
    
    //版主
    class board{
        protected $level = 1;//当前级别为1
        protected $top = 'admin';//高一级的处理
    
        public function process($lv=1){
            if($lv <= $this->level){
                echo '版主删帖' . '<br/>';
            }else{
                $topCls = new $this->top;
                $topCls->process($lv);
            }
        }
    }
    
    //管理员
    class admin{
        protected $level = 2;//当前级别为2
        protected $top = 'police';//高一级的处理
    
        public function process($lv=2){
            if($lv <= $this->level){
                echo '管理员冻结登录账号' . '<br/>';
            }else{
                $topCls = new $this->top;
                $topCls->process($lv);
            }
        }
    }
    
    
    //治安部门
    class police{
        public function process($lv=3){
            echo '治安部门参与治理' . '<br/>';
        }
    }
    
    
    $lv = isset($_GET['lv'])?$_GET['lv']:1;
    
    $cls = new board();
    $cls->process($lv);

  • 相关阅读:
    平台升级至spring 4.3.0 运行稳定
    java过滤特殊字符的正则表达式
    xheditor-文件上传-java-支持html5-application/octet-stream
    java用正则方法验证文件名是否合法
    Java实现在线预览Word,Excel,Ppt文档
    为什么用freemarker视图?
    Java中判断String不为空的问题性能比较
    解决org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource
    Java Swing 使用非本地字体
    第三方包jintellitype实现Java设置全局热键
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9680978.html
Copyright © 2011-2022 走看看