手机
当前位置:查字典教程网 >编程开发 >php教程 >php设计模式 Chain Of Responsibility (职责链模式)
php设计模式 Chain Of Responsibility (职责链模式)
摘要:复制代码代码如下:

复制代码 代码如下:

<?php

/**

* 职责链模式

*

* 为解除请求的发送者和接收者之间的耦合,而使用多个对象都用机会处理这个请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它

*

*/

abstract class Handler

{

protected $_handler = null;

public function setSuccessor($handler)

{

$this->_handler = $handler;

}

abstract function handleRequest($request);

}

class ConcreteHandlerZero extends Handler

{

public function handleRequest($request)

{

if($request == 0)

{

echo "0<br/>";

} else {

$this->_handler->handleRequest($request);

}

}

}

class ConcreteHandlerOdd extends Handler

{

public function handleRequest($request)

{

if($request % 2)

{

echo $request." is odd<br/>";

} else {

$this->_handler->handleRequest($request);

}

}

}

class ConcreteHandlerEven extends Handler

{

public function handleRequest($request)

{

if(!($request % 2))

{

echo $request." is even<br/>";

} else {

$this->_handler->handleRequest($request);

}

}

}

// 实例一下

$objZeroHander = new ConcreteHandlerZero();

$objEvenHander = new ConcreteHandlerEven();

$objOddHander = new ConcreteHandlerOdd();

$objZeroHander->setSuccessor($objEvenHander);

$objEvenHander->setSuccessor($objOddHander);

foreach(array(2,3,4,5,0) as $row)

{

$objZeroHander->handleRequest($row);

}

【php设计模式 Chain Of Responsibility (职责链模式)】相关文章:

如何将一个表单同时提交到两个地方处理

php简单smarty入门程序实例

php生成年月日下载列表的方法

Php部分常见问题总结第1/2页

推荐文章系统(一)

聊天室php&mysql(三)

使用sockets:从新闻组中获取文章(二)

我的论坛源代码(八)

用PHP调用数据库的存贮过程

我的论坛源代码(九)

精品推荐
分类导航