php设计模式ChainOfResponsibility(职责链模式)
2023-06-13 09:14:29 时间
<?php
/**
*职责链模式
*
*为解除请求的发送者和接收者之间的耦合,而使用多个对象都用机会处理这个请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它
*
*/
abstractclassHandler
{
protected$_handler=null;
publicfunctionsetSuccessor($handler)
{
$this->_handler=$handler;
}
abstractfunctionhandleRequest($request);
}
classConcreteHandlerZeroextendsHandler
{
publicfunctionhandleRequest($request)
{
if($request==0)
{
echo"0<br/>";
}else{
$this->_handler->handleRequest($request);
}
}
}
classConcreteHandlerOddextendsHandler
{
publicfunctionhandleRequest($request)
{
if($request%2)
{
echo$request."isodd<br/>";
}else{
$this->_handler->handleRequest($request);
}
}
}
classConcreteHandlerEvenextendsHandler
{
publicfunctionhandleRequest($request)
{
if(!($request%2))
{
echo$request."iseven<br/>";
}else{
$this->_handler->handleRequest($request);
}
}
}
//实例一下
$objZeroHander=newConcreteHandlerZero();
$objEvenHander=newConcreteHandlerEven();
$objOddHander=newConcreteHandlerOdd();
$objZeroHander->setSuccessor($objEvenHander);
$objEvenHander->setSuccessor($objOddHander);
foreach(array(2,3,4,5,0)as$row)
{
$objZeroHander->handleRequest($row);
}
相关文章
- PHP DFA算法实现敏感词过滤包 php-dfa-sensitive
- PHP设计模式 - 门面模式(Facade)通俗易懂 / 友好示例代码
- [PHP] apache在worker模式配置fastcgi使用php-fpm详解编程语言
- PHP使用MySQL数据库:最佳实践(php查询mysql数据库)
- PHP实现MySQL分页查询功能(php分页查询mysql)
- Linux系统下搜索PHP文件的技巧(linux查找php文件)
- PHP助力MySQL实现程序开发梦想(php支持mysql)
- PHP设计模式_注册树模式详解编程语言
- PHP设计模式_适配器模式详解编程语言
- 实现缓存PHP开启Redis超越缓存技术(php开启redis)
- PHP在Linux下安装配置指南(php搭建环境linux)
- MySQL和PHP编程:构建数据库连接桥梁(mysql与php连接)
- 在php中解除MySQL与PHP的绑定(mysql不包括)
- PHP管理MSSQL的方法探索(Php管理mssql)
- 用PHP测试MSSQL类的新尝试(php 测试mssql类)
- PHP与MSSQL融合产生的丰盛果实(php和mssql环境)
- 安装PHP扩展程序让网站支持Redis(安装php-redis)
- php设计模式之单例模式
- php设计模式之工厂模式
- php设计模式Command(命令模式)
- php设计模式Prototype(原型模式)代码
- php设计模式Mediator(中介者模式)
- php设计模式Bridge(桥接模式)
- php设计模式Interpreter(解释器模式)
- php设计模式Factory(工厂模式)
- php设计模式Builder(建造者模式)
- PHP设计模式注册表模式(多个类的注册)
- php设计模式之观察者模式的应用详解
- PHP设计模式之责任链模式的深入解析
- PHP实现设计模式中的抽象工厂模式详解