服务器之家

服务器之家 > 正文

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

时间:2019-12-01 12:39     来源/作者:PHP教程网
代码如下:

<?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); 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部