当前位置: 首页 > news >正文

网站建设网站软件有哪些方面无需域名网站建设

网站建设网站软件有哪些方面,无需域名网站建设,网站产品介绍页面的布局方案,符合网络营销的网站模式定义 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许多个对象按链式顺序处理请求,直到其中一个对象处理为止。该模式将请求的发送者和接收者解耦,使多个对象都有机会处理请求。 模式结构…

模式定义

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许多个对象按链式顺序处理请求,直到其中一个对象处理为止。该模式将请求的发送者和接收者解耦,使多个对象都有机会处理请求。


模式结构

抽象处理者(Handler)

  • 定义处理请求的接口(如 handleRequest()
  • 持有下一个处理者的引用(nextHandler
    具体处理者(ConcreteHandler)
  • 实现请求处理逻辑,决定是否处理或传递请求
    客户端(Client)
  • 构建处理链并触发请求

适用场景

多级处理逻辑:数控系统中需要依次执行安全检查、参数校验、运动控制等步骤
动态调整处理流程:运行时灵活调整处理链顺序(如紧急任务跳过某些校验)
解耦请求与处理者:避免请求发送者依赖具体处理对象


C++示例(数控系统场景)

场景说明:
数控系统执行加工任务时需依次通过安全检查、参数校验、运动控制三个环节,任一环节失败则终止流程。

#include 
#include // 请求类:加工任务
class MachiningRequest {
public:MachiningRequest(int speed, float depth) : speed_(speed), depth_(depth), isSafe_(false), isValid_(false) {}int speed_;float depth_;bool isSafe_;bool isValid_;
};// 抽象处理者
class Handler {
protected:Handler* nextHandler_;
public:Handler() : nextHandler_(nullptr) {}virtual ~Handler() = default;void setNext(Handler* handler) { nextHandler_ = handler; }virtual void handleRequest(MachiningRequest& request) = 0;
};// 具体处理者:安全检查
class SafetyCheckHandler : public Handler {
public:void handleRequest(MachiningRequest& request) override {if (request.speed_ <= 5000 && request.depth_ <= 100.0f) {request.isSafe_ = true;std::cout << "安全检查通过" << std::endl;if (nextHandler_) nextHandler_->handleRequest(request);} else {std::cout << "安全校验失败:参数超限" << std::endl;}}
};// 具体处理者:参数校验
class ParameterValidator : public Handler {
public:void handleRequest(MachiningRequest& request) override {if (request.speed_ > 0 && request.depth_ > 0) {request.isValid_ = true;std::cout << "参数校验通过" << std::endl;if (nextHandler_) nextHandler_->handleRequest(request);} else {std::cout << "参数校验失败:非法数值" << std::endl;}}
};// 具体处理者:运动控制
class MotionController : public Handler {
public:void handleRequest(MachiningRequest& request) override {if (request.isSafe_ && request.isValid_) {std::cout << "运动控制执行:速度=" << request.speed_ << "rpm,深度=" << request.depth_ << "mm" << std::endl;}}
};int main() {// 构建处理链Handler* safetyCheck = new SafetyCheckHandler();Handler* validator = new ParameterValidator();Handler* motionCtrl = new MotionController();safetyCheck->setNext(validator);validator->setNext(motionCtrl);// 触发请求MachiningRequest task1(2500, 50.0f);std::cout << "--- 任务1执行 ---" << std::endl;safetyCheck->handleRequest(task1);MachiningRequest task2(6000, 150.0f);std::cout << "\n--- 任务2执行 ---" << std::endl;safetyCheck->handleRequest(task2);delete safetyCheck;delete validator;delete motionCtrl;return 0;
}

输出结果

--- 任务1执行 ---
安全检查通过
参数校验通过
运动控制执行:速度=2500rpm,深度=50mm--- 任务2执行 ---
安全校验失败:参数超限

实现要点

链式传递:每个处理者通过 nextHandler_ 传递请求,形成处理链[
动态扩展:新增处理步骤(如日志记录)只需添加新 ConcreteHandler
终止条件:处理者根据业务逻辑决定是否中断链(如安全检查失败)


模式变体

纯责任链:请求必须被严格处理或传递(如审批流程)
带中断的链:处理完成后可终止传递(如本示例的安全检查)
优先级链:按优先级动态排序处理者(如紧急任务优先处理)

http://www.dtcms.com/a/596131.html

相关文章:

  • 电商网站首页怎么制作wordpress站点设置使用期限
  • 建网站大概多少费用大芬地铁站附近做网站
  • 网站的最近浏览 怎么做wordpress博客字体
  • 电子商务网站建设的基本要求搜索引擎优化英文简称为
  • 宁波网站建设工作广西建设网人员查询网
  • 学校网站建设市场分析泰州做网站淘宝
  • 盘锦做网站建设的wordpress小工具安装
  • 部门网站建设管理经验交流材料少儿编程免费软件
  • html5网站模板免费下载成都网站建设加推广公司
  • 手机自己制作表白网站网站标题设计
  • 什么设计网站好深圳营销型网站建设服务商
  • 建设本地网站 配置iis实例 久久建筑网
  • 一个平台网站开发wordpress编辑器怎么变
  • 深圳罗湖建网站深圳哪家公司做网站好
  • 利用百度快照搜索消失的网站wordpress博客模板
  • 汽车网站建设目的被禁止访问网站怎么办
  • 企业网站设计与规划论文建立网站公司
  • 手机免费建立网站建网站买空间
  • 织梦网站图片不显示网创
  • 工程建设期刊网站我国有哪些企业网站
  • 免费建站的网站能做影视网站吗建筑工程集团有限公司
  • 品牌网站设计步骤永州网站建设公司
  • 简洁大气的网站石家庄建设工程信息网官网
  • 阿里云esc建设网站浙江省建设厅干部学校门户网站
  • 陕西宁德建设工程有限公司网站最新cms
  • asp.net个人网站怎么做推广游戏怎么拉人最快
  • 梨树县交通建设网站免费的照片编辑软件
  • 任丘网站开发建设怎么选360建筑网发布的简历
  • ( )是网站可以提供给用户的价值网站策划布局
  • 做公司网站用什么系统永兴房产网站