>  기사  >  백엔드 개발  >  책임 PHP 디자인 패턴 책임 사슬 책임 사슬 패턴

책임 PHP 디자인 패턴 책임 사슬 책임 사슬 패턴

WBOY
WBOY원래의
2016-07-29 08:45:461038검색

复代码 代码如下:


/**
* 책임 체인 패턴
*
* 요청의 송신자와 수신자를 분리하기 위해 여러 객체를 사용하여 요청을 처리하고, 이러한 객체를 체인으로 연결한 후 요청을 전달합니다. 객체가 처리할 때까지 체인
*
*/
추상 클래스 핸들러
{
보호된 $_handler = null;
공용 함수 setSuccessor($handler)
{
$this->_handler = $handler;
}
추상 함수 handlerRequest($request);
}
class ConcreteHandlerZero 확장 핸들러
{
public function handlerRequest($request)
{
if($request == 0)
{
echo "0< ;br/>";
} else {
$this->_handler->handleRequest($request);
}
}
}
class ConcreteHandlerOdd 확장 핸들러
{
공용 함수 handlerRequest($request)
{
if($request % 2)
{
echo $request."는 홀수입니다
";
} else {
$this->_handler->handleRequest($request);
}
}
}
class ConcreteHandlerEven은 Handler를 확장합니다
{
public function handlerRequest($request)
{
if(!($request % 2))
{
echo $request."는 짝수입니다
";
} else {
$this->_handler->handleRequest($request);
}
}
}
// 实例一下
$objZeroHander = new ConcreteHandlerZero();
$objEvenHander = 새로운 ConcreteHandlerEven();
$objOddHander = 새로운 ConcreteHandlerOdd();
$objZeroHander->setSuccessor($objEvenHander);
$objEvenHander->setSuccessor($objOddHander);
foreach(array(2,3,4,5,0) as $row)
{
$objZeroHander->handleRequest($row);
}

以上就介绍了responsibility php设计模式 Chain of Responsibility 职责链模式,包括了responsibility方face 内容,希望对PHP教程有兴趣的朋友有所帮助。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.