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

前端之家收集整理的这篇文章主要介绍了php设计模式 Chain Of Responsibility (职责链模式)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<div class="codetitle"><a style="CURSOR: pointer" data="17515" class="copybut" id="copybut17515" onclick="doCopy('code17515')"> 代码如下:

<div class="codebody" id="code17515"> @H_403_2@<?PHP @H_4032@/** @H4032@* 职责链模式 @H4032@* @H4032@* 为解除请求的发送者和接收者之间的耦合,而使用多个对象都用机会处理这个请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它 @H4032@* @H4032@*/ @H4032@abstract class Handler @H4032@{ @H403_2@protected $handler = null; @H4032@public function setSuccessor($handler) @H4032@{ @H403_2@$this->handler = $handler; @H4032@} @H4032@abstract function handleRequest($request); @H4032@} @H4032@class ConcreteHandlerZero extends Handler @H4032@{ @H4032@public function handleRequest($request) @H4032@{ @H4032@if($request == 0) @H4032@{ @H4032@echo "0
"; @H
4032@} else { @H403_2@$this->handler->handleRequest($request); @H4032@} @H4032@} @H4032@} @H4032@class ConcreteHandlerOdd extends Handler @H4032@{ @H4032@public function handleRequest($request) @H4032@{ @H4032@if($request % 2) @H4032@{ @H4032@echo $request." is odd
"; @H
4032@} else { @H403_2@$this->handler->handleRequest($request); @H4032@} @H4032@} @H4032@} @H4032@class ConcreteHandlerEven extends Handler @H4032@{ @H4032@public function handleRequest($request) @H4032@{ @H4032@if(!($request % 2)) @H4032@{ @H4032@echo $request." is even
"; @H
4032@} else { @H403_2@$this->handler->handleRequest($request); @H4032@} @H4032@} @H4032@} @H4032@// 实例一下 @H4032@$objZeroHander = new ConcreteHandlerZero(); @H4032@$objEvenHander = new ConcreteHandlerEven(); @H4032@$objOddHander = new ConcreteHandlerOdd(); @H4032@$objZeroHander->setSuccessor($objEvenHander); @H4032@$objEvenHander->setSuccessor($objOddHander); @H4032@foreach(array(2,3,4,5,0) as $row) @H4032@{ @H4032@$objZeroHander->handleRequest($row); @H4032@} @H403_2@

猜你在找的PHP相关文章