加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

PHP职责链模式如何实现 代码是什么

发布时间:2023-07-10 13:15:57 所属栏目:语言 来源:
导读:这篇文章给大家介绍了“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

";

} else {

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

}

}

}

class ConcreteHandlerOdd extends Handler

{

public function handleRequest($request)

{

if($request % 2)

{

echo $request." is odd

";

} else {

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

}

}

}

class ConcreteHandlerEven extends Handler

{

public function handleRequest($request)

{

if(!($request % 2))

{

echo $request." is even

";

} 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职责链模式怎样实现,代码是什么”就介绍到这了,如果大家觉得不错可以参考了解看看,如果想要了解更多,小编每天都会为大家更新不同的知识。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!