php设计模式 Chain Of Responsibility (职责链模式)
php设计模式 Chain Of Responsibility (职责链模式)
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

<?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教程学习
热门php教程学习
编程开发子分类