PHP行为型模式之责任链模式(thinkphp5运行原理)太疯狂了

随心笔谈9个月前更新 admin
207 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

本文介绍了PHP中的抽象处理器类和具体实现方式。文章通过定义一个抽象处理器类`Handler`,展示了如何通过继承和多态实现不同的处理逻辑。具体实现部分定义了两个具体处理器类`ConcreteHandlerA`和`ConcreteHandlerB`,它们继承自抽象处理器类,并在`handleRequest`方法中实现了不同的处理逻辑。文章还描述了如何通过设置后继处理器(`setSuccessor`方法)将处理逻辑链连接起来,并在客户端代码中展示了如何创建实例、设置后继处理器,并调用处理请求。文章重点突出了面向对象编程和继承的编程思想,以及如何通过类和实例实现灵活的处理逻辑。

<?php
// 抽象处理器类
abstract class Handler
{
protected $successor;
public function setSuccessor(Handler $successor)
{
$this->successor=$successor;
}
abstract public function handleRequest($request);
}
// 具体处理器类A
class ConcreteHandlerA extends Handler
{
public function handleRequest($request)
{
if ($request==”A”) {
echo “ConcreteHandlerA handles the request.\n”;
} else if ($this->successor !=null) {
$this->successor->handleRequest($request);
}
}
}
// 具体处理器类B
class ConcreteHandlerB extends Handler
{
public function handleRequest($request)
{
if ($request==”B”) {
echo “ConcreteHandlerB handles the request.\n”;
} else if ($this->successor !=null) {
$this->successor->handleRequest($request);
}
}
}
// 客户端代码
$handlerA=new ConcreteHandlerA();
$handlerB=new ConcreteHandlerB();
$handlerA->setSuccessor($handlerB);
$handlerA->handleRequest(“A”);
$handlerA->handleRequest(“B”);

© 版权声明

相关文章