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

2016网站开发语言引流推广网站平台

2016网站开发语言,引流推广网站平台,鞍山手机网站设计,u盘启动盘制作工具🔄 回顾 Day 15:享元模式小结 在 Day 15 中,我们学习了享元模式(Flyweight Pattern): 通过共享对象,分离内部状态与外部状态,大量减少内存开销。适用于字符渲染、游戏场景、图标缓…

🔄 回顾 Day 15:享元模式小结

在 Day 15 中,我们学习了享元模式(Flyweight Pattern):

  • 通过共享对象,分离内部状态与外部状态,大量减少内存开销。
  • 适用于字符渲染、游戏场景、图标缓存等高频对象复用场景。

今天的主角是极具灵活性的责任链模式(Chain of Responsibility Pattern)

责任链模式:将请求沿着处理链传递,节点动态决定是否处理请求或传递给下一个节点,构建解耦、灵活的处理流程。


一、责任链模式的核心动机

在系统中,常常需要多个对象处理同一个请求,但又希望:

  • 谁处理由运行时决定
  • 发送者不需要知道具体哪个对象处理了请求

✅ 应用场景:

  • 日志处理链:Debug → Info → Error
  • GUI 事件传递:子控件未处理,则父控件继续处理
  • 中间件框架:权限验证、日志记录、异常捕获
    在这里插入图片描述

二、结构图(UML)

+----------------+
| Handler        |
+----------------+
| +setNext()     |
| +handle()      |
+----------------+/\/  \
+-----------------+   +-----------------+
| ConcreteHandlerA |   | ConcreteHandlerB |
+-----------------+   +-----------------+

三、角色说明

角色职责描述
Handler抽象处理者接口,定义 setNext 和 handle 方法
ConcreteHandler具体处理者,决定自己处理或传递给下一个节点

四、C++ 实现:日志处理责任链

✅ 抽象处理器

class Logger {
protected:std::shared_ptr<Logger> next_;public:void setNext(std::shared_ptr<Logger> next) {next_ = next;}virtual void logMessage(int level, const std::string& message) = 0;virtual ~Logger() = default;
};

✅ 具体处理器(不同级别)

class DebugLogger : public Logger {
public:void logMessage(int level, const std::string& message) override {if (level == 1)std::cout << "[DEBUG] " << message << std::endl;else if (next_)next_->logMessage(level, message);}
};class InfoLogger : public Logger {
public:void logMessage(int level, const std::string& message) override {if (level == 2)std::cout << "[INFO] " << message << std::endl;else if (next_)next_->logMessage(level, message);}
};class ErrorLogger : public Logger {
public:void logMessage(int level, const std::string& message) override {if (level == 3)std::cout << "[ERROR] " << message << std::endl;else if (next_)next_->logMessage(level, message);}
};

✅ 使用示例

int main() {auto debugLogger = std::make_shared<DebugLogger>();auto infoLogger = std::make_shared<InfoLogger>();auto errorLogger = std::make_shared<ErrorLogger>();debugLogger->setNext(infoLogger);infoLogger->setNext(errorLogger);auto loggerChain = debugLogger;loggerChain->logMessage(1, "调试信息");loggerChain->logMessage(2, "普通信息");loggerChain->logMessage(3, "错误信息");return 0;
}

输出:

[DEBUG] 调试信息
[INFO] 普通信息
[ERROR] 错误信息

五、责任链常见应用场景总结

场景链式责任节点
GUI 事件处理子控件 → 父控件 → 窗口根
Web 请求处理认证中间件 → 日志中间件 → 缓存中间件
业务审批流组长 → 部门经理 → 总经理
客户请求分发客户端路由规则链
配置查找链环境变量 → 配置文件 → 默认值

六、优点与缺点分析

✅ 优点:

  • 请求发送者与处理者解耦
  • 责任链可动态组合,支持灵活扩展
  • 便于增加、修改处理节点逻辑

❗ 缺点:

  • 可能导致请求未被任何节点处理(需要合理设计)
  • 调试复杂,请求流向不易跟踪

七、责任链与其他模式对比

模式核心意图是否处理一件事
责任链 Chain请求沿链传递,节点决定处理与否❓(可能处理/可能不处理)
观察者 Observer所有订阅者都收到通知✅(全部处理)
命令模式 Command将请求封装成对象,单点发送✅(单一处理者)

八、面试回答模板

“我们在 Web 框架中使用责任链模式构建中间件处理流。每个中间件负责一部分功能,比如鉴权、日志、缓存,如果某个中间件未处理,就将请求传递给下一个。责任链极大提升了模块解耦和扩展性,同时支持动态组合不同处理顺序。”

✅ 建议强调链式流动、模块化处理、动态组合优势。


九、口诀记忆

“节点串成链,请求顺流传;能处就拦截,不能就后延。”


十、明日预告:Day 17

中介者模式(Mediator Pattern):统一控制对象交互,减少对象间耦合,简化系统复杂度。


文章转载自:

http://wZPgaipx.rkdhh.cn
http://geHQigPc.rkdhh.cn
http://D7dsQJ1B.rkdhh.cn
http://lOZ1Xn6Q.rkdhh.cn
http://RKmL3DGW.rkdhh.cn
http://kVZxmnxa.rkdhh.cn
http://PBlIFOih.rkdhh.cn
http://nS0aO8Tn.rkdhh.cn
http://0IRiuBKV.rkdhh.cn
http://fu0TkzeQ.rkdhh.cn
http://RCbnHICl.rkdhh.cn
http://hhLvxbmA.rkdhh.cn
http://0MRWEBeW.rkdhh.cn
http://t5WgpQqz.rkdhh.cn
http://OrgGc1vf.rkdhh.cn
http://C1CU4tQj.rkdhh.cn
http://4V1el2f2.rkdhh.cn
http://leEbNA5e.rkdhh.cn
http://ulo4pU3K.rkdhh.cn
http://1CDhTmO3.rkdhh.cn
http://YwFmdpOQ.rkdhh.cn
http://jMJ2D5XI.rkdhh.cn
http://NGpeUu4M.rkdhh.cn
http://KCFFUE9c.rkdhh.cn
http://ANysNtqz.rkdhh.cn
http://q7HOHxhJ.rkdhh.cn
http://xjYTXVUb.rkdhh.cn
http://VFCNyuPN.rkdhh.cn
http://5MeZjSwV.rkdhh.cn
http://snBZIyDC.rkdhh.cn
http://www.dtcms.com/wzjs/619276.html

相关文章:

  • 移动建站平台门户网站建设大概多少钱
  • 视频网站如何优化结婚证app制作软件
  • 网站建设行业资讯东莞建站模板代理
  • 北京网站建设最好公司网页制作素材是什么
  • 看一个网站是哪里做的傻瓜使用模板建网站
  • 天河手机网站建设做书的网站有哪些内容
  • 上海网站建设设计公司哪家好一套企业网站设计图片
  • 做婚恋网站的翻译好吗怎样建设网站免费
  • 南京网站开发南京乐识好68设计网
  • 青色系 网站一个网页多少钱合适
  • 模板网站建设乐云seo效果好网站免费虚拟主机申请
  • 做电影网站会不会侵权视频网站开发前景
  • 开发网站实时监控平面设计室内设计
  • 好的网站怎么设计如何下载ppt模板免费
  • 梁园区官方网站苏州企业网站优化
  • 做网站如何用模板建设嘉陵摩托车官方网站
  • 东莞知名网站免费网站统计工具
  • 佛山建站重庆做商城网站设计
  • 如何识别html5网站优秀网站设计的标准
  • 道德建设 网站深圳西乡网站制作
  • 网站建设云南才力上海好的高端网站建设服务公司
  • 电商网站开发公司杭州模板网会员
  • 建设银行的网站进不去怎么办天长市城乡规划建设局网站
  • 网站建设 泰安wordpress typecho 大数据
  • 网站建设情况调查表重庆建设摩托车股份有限公司
  • 网站开发程序说明wordpress登录页面模板下载
  • 四川煤矿基本建设工程公司网站报价表
  • dw里面怎么做网站轮播图青海风控平台app下载
  • 服装网站建设规划书需求分析住房和城乡建设部网站评估
  • 为什么用花生壳做的网站老刷新做logo的比赛网站