PHP责任链设计模式

<?php
      //责任链设计模式
      /**
      * 每个对象,储存着对自己上级的引用,
      * 如果自己处理不了,交给上一级。
      */
  class board{
           protected $power=1;
           protected $top=‘admin‘;

           public function process($lev){
                if($lev<=$this->power){
                 echo "版主删帖";
                }else{
                $top=new $this->top;
                $top->process($lev);
                }
           }
      }
  class admin{
          protected $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=3;
         protected $top=null;

         public  function process($lev){
           echo ‘抓起来‘;
         }
  }
 // 责任链模式来处理举报问题
   $lev=$_POST[‘jubao‘]+0;

   $judge=new board();
   $judge->process($lev);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>责任链模式处理举报问题</title>
</head>
<body>
        <form  action="2.php" method="post">
              <select  name="jubao">
                        <option value="1">粗口</option>
                        <option value="2">黄赌毒</option>
                        <option value="3">分裂国家</option>
               </select>
             <button type="submit">举报</button>
        </form>
</body>
</html>
时间: 2024-09-28 13:06:21

PHP责任链设计模式的相关文章

Java设计模式之责任链设计模式

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将所有处理对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止. ? 请求传递方向:从低级到高级 ? 重点:如何形成这个责任链 ? 特点:发出处理请求的客户端并不知道是系统当中的哪一个对象最终处理这个请求,这样系统的更改可以在不影响客户端的情况下动态地重新组织和分配责任.1. 派生类中都具备的功能(1) 都要设置后继者(一样)(2) 都能实现自己职责范围

【JS设计模式】责任链设计模式的代码示例

责任链设计模式: 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任. 责任链模式涉及到的角色如下所示:● 抽象处理者(Handler)角色:定义出一个处理请求的接口.如果需要,接口可以定义 出一个方法以设定和返回对下家的引用.这个角色通常由一个Java抽象类或者Java接口实现.上图中Handle

责任链设计模式(过滤器、拦截器)

责任链设计模式(Chain of Responsibility)的应用有:Java Web中的过滤器链.Struts2中的拦截器栈. 先看一个问题: 给定一个字符串“被就业了:),敏感信息,<script>”,对其中的HTML标记和敏感词进行过滤或替换.本文主要以该问题设计方法的演变来讲解责任链设计模式. 第一种设计:没有任何设计模式 设计了一个MsgProcessor类,完成字符串处理的主要工作.MainClass类是本设计中的测试类. 01 02 03 04 05 06 07 08 09

java责任链设计模式(功能链)

1.概述 网上讲述大部分责任链设计模式如下图,将责任链定义为:使多个对象都有机会处理同一个请求(下图中的数据),从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链(下图的A B C),并沿着这条链传递该请求,直到有一个对象处理它为止. 我所讲解的和这个不太一样,网上一般讲的是如果请求(数据)来了,对象A是否能处理?处理不了转为链条的一个对象B去处理,B处理不了则继续往下走,以此类推,并且只要有一个对象可以处理,就不会继续往下走了.比如A能处理,则处理之后就返回.我所讲的应该称为功能

JAVA责任链设计模式

<JAVA与模式>之责任链模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任. 从击鼓传花谈起 击鼓传花是一种热闹而又紧张的饮酒游戏

编程内功修炼之设计模式—责任链模式

在设计模式不清楚的情况下,学习各种框架不仅难学懂,也难理解,即使理解也不够深刻. 为了走更远的路,从基础抓起,每天坚持前进一小步! 虽然即将毕业,虽然路途很远,没有梦想何必远方! package edu.designpattern.chainofresponsibility; import java.util.ArrayList; import java.util.List; import org.junit.Test; /** * 责任链设计模式 * 模型练习 * * @author heli

C#设计模式:责任链模式

设计模式是面向对象编程的基础,是用于指导程序设计.在实际项目开发过程中,并不是一味将设计模式进行套用,也不是功能设计时大量引入设计模式.应该根据具体需求和要求应用适合的设计模式.设计模式是一个老话题了,因为最近在设计“网关API”组件(后续介绍),采用“责任链设计模式”进行设计,所以先进行回顾记录.  一.责任链模式介绍 责任链模式是指一个处理需要涉及多个过程或者角色参与处理,并基于某个约定组成一个链,每个过程或者角色拥有各自职责进行处理.责任链模式有效组织一个过程处理,同时子过程之间职责明确.

设计模式-责任链设计

看了一下设计模式中的责任链设计模式,主要实现类似拦截器的功能,记下来方便自己以后复习. 1.应用场景 假设要处理爬虫趴下来的内容,你就需要发这些内容进行去噪,例如:取格式化html标签,去页面脚本,去敏感信息等等,如果将这些过滤内容都写在一个方法中,那么势必造成代码耦合性强,如果以后不断的添加内容,将造成很大的维护成本. 所以,我们需要把变化的内容抽取出来定义为接口,需要使用时我们只需实现其对应的操作. 2.实例应用 1. 内容去噪过滤 先定义过滤接口 package org.andy.filt

23种设计模式之责任链模式(Chain of Responsibility)

责任链模式是一种对象的行为型模式,避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止.责任链模式不保证每个请求都被接受,由于一个请求没有明确的接收者,那么就不能保证它一定会被处理. 优点: 1)降低了耦合度. 2)增加向对象指定责任的灵活性. 3)由于在一个类中产生的事件可以被发送到组成中的其它类处理器上,类的集合可以作为一个整体. 使用场景: 1)多个对象可以处理一个请求,而其处理器却是未知的. 2)想要在不指定确