8、职责链模式

原创 2016年05月31日 22:55:36
chain of resionbility

    <h1>指责链模式<h1>
        <form method="post" action="">
        <select name="jubao">
            <option value="1">粗口</option>
            <option value="2">黄赌毒</option>
            <option value="3">分裂国家</option>
        </select>
        <input type="submit" value="提交">
    </form>

<?php
    $lev = isset($_POST['jubao']) ? $_POST['jubao'] + 0 : 0 ;

    class board
    {
        public function process()
        {
            echo '版主删帖';
        }
    }
    class admin
    {
        public function process()
        {
            echo '管理员封帐号';
        }
    }
    class police
    {
        public function process()
        {
            echo '抓起来';
        }
    }

    if($lev == 1)
    {
        $judge = new board();
        $judge->process();
    }else if($lev == 2)
    {
        $judge = new admin();
        $judge->process();
    }else if($lev == 3)
    {
        $judge = new police();
        $judge->process();
    }
?>

<h1>指责链模式<h1>
<form method="post" action="">
    <select name="jubao">
        <option value="1">粗口</option>
        <option value="2">黄赌毒</option>
        <option value="3">分裂国家</option>
    </select>
    <input type="submit" value="提交">
</form>
<?php
$lev = isset($_POST['jubao']) ? $_POST['jubao'] + 0 : 0 ;
$judge = new board();
$judge->process($lev);
//责任链模式
class board
{
    public $power = 1;
    protected $top = 'admin';

    public function process($lev)
    {
        if($lev <= $this->power)
        {
            echo '版主删帖';
        }else{
            $top = new $this->top;
            $top->process($lev);
        }
    }
}
class admin
{
    public $power = 2;
    protected $top = 'police';

    public function process($lev)
    {
        if($lev <= $this->power)
        {
            echo '管理员封帐号';
        }else{
            $top = new $this->top;
            $top->process($lev);
        }
    }
}
class police
{
    protected $power;
    protected $top = null;

    public function process()
    {
        echo '抓起来';
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

状态模式 VS 职责链模式

这次合作开发过程中我们使用了一些设计模式,经过讨论对其理解深刻不少。之前在学习之中,我本以为自己已经理解了一些设计模式。但在这次的使用过程中,因为各自的理解不一造成了一定的碰撞,之后才发现自己的理解根...
  • zhuojiajin
  • zhuojiajin
  • 2013年12月05日 11:09
  • 2565

职责链设计模式解决if else多分支问题

具体方案具体分析,此代码适合分类业务进行的if else操作,解决多分支问题 //方案一:职责链设计模式 #include #include #include #include us...
  • mafuli007
  • mafuli007
  • 2012年10月29日 19:04
  • 2244

【学习笔记javascript设计模式与开发实践(职责链模式)----13】

第13章 职责链模式 职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到一个对象处理它为止。 职责链模式的名字...
  • pigpigpig4587
  • pigpigpig4587
  • 2015年12月31日 16:23
  • 719

《大话设计模式》-- 第24个 职责链模式

此时学设计模式只能有个大致的了解,不能理解其到底要用在何处,但是先大概根据书中描述留个简单的印象,以后在设计代码时可以有点印象,遇到具体的问题可以类比实践下。 今天学习一下《大话设计模式》中的第24...
  • anbreakdy
  • anbreakdy
  • 2016年10月28日 00:02
  • 127

《设计模式 ● 责任链》之业务场景

/************************************************************************************************** ...
  • webwalker
  • webwalker
  • 2012年03月21日 16:29
  • 4608

用代码和UML图化解设计模式之《责任链模式》

责任链模式,用我的理解就是动作的处理链表。根据请求的不同类型,在链表查找相应类型的处理者。处理者是一个链表。 wiki上说明 wikipedia的定义为:CoR pattern consists ...
  • wallwind
  • wallwind
  • 2012年11月06日 20:20
  • 2130

大话设计模式-职责链模式

1.当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler对象负责处理它【DP】 2.接收者和发送者都没有对方的明确信息,且链中的对象自己也并不知道链的结构。结果是职责链可简化...
  • dizzthxl
  • dizzthxl
  • 2012年07月24日 17:09
  • 326

设计模式介绍之八:职责链模式(Chain of responsibility)

职责链模式使得一个软件系统中的多个对象都有机会处理请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止,从而避免请求的发送者和接收者之间产生强耦合关系。     常见的应用程...
  • foruok
  • foruok
  • 2014年03月27日 08:21
  • 3623

JavaScript设计模式--责任链模式

一、定义责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。二、示例 假设这么一个场景: ...
  • ligang2585116
  • ligang2585116
  • 2015年12月20日 19:40
  • 1796

【设计模式】—-(22)责任链模式(行为型)

一、定义(概念) 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 二、适用场景 1 有多个...
  • singit
  • singit
  • 2017年02月06日 22:40
  • 320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:8、职责链模式
举报原因:
原因补充:

(最多只允许输入30个字)