• php设计模式 Chain Of Responsibility (职责链模式)


    简介:这是php设计模式 Chain Of Responsibility (职责链模式)的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=339157' scrolling='no'>
    1 <?php
    2 /**
    3 * 职责链模式
    4 *
    5 * 为解除请求的发送者和接收者之间的耦合,而使用多个对象都用机会处理这个请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它
    6 *
    7 */
    8 abstract class Handler
    9 {
    10 protected $_handler = null;
    11
    12 public function setSuccessor($handler)
    13 {
    14 $this->_handler = $handler;
    15 }
    16
    17 abstract function handleRequest($request);
    18 }
    19
    20 class ConcreteHandlerZero extends Handler
    21 {
    22 public function handleRequest($request)
    23 {
    24 if($request == 0)
    25 {
    26 echo "0<br/>";
    27 } else {
    28 $this->_handler->handleRequest($request);
    29 }
    30 }
    31 }
    32
    33 class ConcreteHandlerOdd extends Handler
    34 {
    35 public function handleRequest($request)
    36 {
    37 if($request % 2)
    38 {
    39 echo $request." is odd<br/>";
    40 } else {
    41 $this->_handler->handleRequest($request);
    42 }
    43 }
    44 }
    45
    46 class ConcreteHandlerEven extends Handler
    47 {
    48 public function handleRequest($request)
    49 {
    50 if(!($request % 2))
    51 {
    52 echo $request." is even<br/>";
    53 } else {
    54 $this->_handler->handleRequest($request);
    55 }
    56 }
    57 }
    58
    59
    60 // 实例一下
    61 $objZeroHander = new ConcreteHandlerZero();
    62 $objEvenHander = new ConcreteHandlerEven();
    63 $objOddHander = new ConcreteHandlerOdd();
    64 $objZeroHander->setSuccessor($objEvenHander);
    65 $objEvenHander->setSuccessor($objOddHander);
    66
    67 foreach(array(2,3,4,5,0) as $row)
    68 {
    69 $objZeroHander->handleRequest($row);
    70 }

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/339157.html pageNo:8
  • 相关阅读:
    flex布局
    input框不能输入问题
    JS的innerHTML完成注册表
    CSS的z-index属性和box-shadow属性
    JS个人笔记
    css照片墙
    透明度设置
    a标签的name属性
    iframe标签
    title属性
  • 原文地址:https://www.cnblogs.com/ooooo/p/2246183.html
Copyright © 2020-2023  润新知