恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

设计模式16-责任链模式:请求的传递与拦截

  • 首页
  • 资讯中心
  • /
  • 设计模式16-责任链模式:请求的传递与拦截

相关资讯

我用 NVIDIA SkillSpector 纯静态扫了一遍 GitHub 最火的 agent skills:能挖出多少注入?0 个 2026/9/11 18:28:22
awesome-gpt-image-2 提示词模板:把电商产品图做成填空题的完整指南 2026/9/11 18:28:22
皮套键盘产业链全景剖析:全球市场规模、中国制造优势与未来5年机遇风险 2026/9/11 18:28:22

最新资讯

Gopeed 贡献者开发指南:分支工作流、本地调试与 Flutter ARB 国际化实战
Jackett性能优化实战指南:让聚合搜索从40秒降到单索引器水平
前端转行的方向在哪个行业
G-Helper 配置重置全记录:风扇拉满、参数回滚、打不开,3步救回
如何读取 VS Code(Code - OSS)开发构建的日志目录定位问题
Paramount 3156310-041射频发生器

今日推荐

YOLO烟盒数据集目标检测训练全流程:标注校验、格式转换与模型复现
HuffPost新闻数据集解析:JSONL加载与时间感知分类实战
Budibase 本地开发环境搭建与运行指南:从全新克隆到 dev 栈启动的完整实践

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

设计模式16-责任链模式:请求的传递与拦截

发布时间:2026/9/11 18:33:22
设计模式16-责任链模式:请求的传递与拦截 责任链模式让请求沿着一条链自己找主人审批流、过滤链、拦截器、异常兜底这些场景都适合把处理者串成一条链谁有资格处理就处理否则传给下一家。一、痛点写死在一处的层层判断报销审批规则经常是这样if(amount1000){return经理审批;}elseif(amount10000){return总监审批;}else{returnCEO 审批;}规则一多判断逻辑会膨胀而且规则可能随时变化比如 1000 到 5000 由经理处理5000 到 20000 由总监处理。每次改规则都要改核心方法。责任链模式的回答把每个处理者封装成独立节点节点自己决定“我能处理吗”不能处理就交给下一个节点。二、实现处理者抽象 → 具体处理者 → 链式组装第一步定义处理者抽象publicabstractclassApprover{protectedApprovernext;publicApproversetNext(Approvernext){this.nextnext;returnnext;}publicfinalStringapprove(longamount){if(canHandle(amount)){returnhandle(amount);}if(nextnull){return无人可以处理;}returnnext.approve(amount);}protectedabstractbooleancanHandle(longamount);protectedabstractStringhandle(longamount);}第二步实现具体处理者publicclassManagerApproverextendsApprover{OverrideprotectedbooleancanHandle(longamount){returnamount1000;}OverrideprotectedStringhandle(longamount){return经理审批通过: amount;}}publicclassDirectorApproverextendsApprover{OverrideprotectedbooleancanHandle(longamount){returnamount10000;}OverrideprotectedStringhandle(longamount){return总监审批通过: amount;}}publicclassCeoApproverextendsApprover{OverrideprotectedbooleancanHandle(longamount){returntrue;}OverrideprotectedStringhandle(longamount){returnCEO 审批通过: amount;}}第三步组装责任链ApprovermanagernewManagerApprover();ApproverdirectornewDirectorApprover();ApproverceonewCeoApprover();manager.setNext(director).setNext(ceo);System.out.println(manager.approve(500));// 经理审批通过System.out.println(manager.approve(5000));// 总监审批通过System.out.println(manager.approve(50000));// CEO 审批通过调用方只把请求交给链头后续由谁处理完全不用关心。三、责任链的核心能力责任链不只能“处理”还能做四件常见的事能力说明拦截当前节点有权拒绝请求不继续传递短路处理后不再传给后续节点传递当前节点处理一部分继续传给下一节点兜底链尾统一处理前面无人处理的情况Servlet Filter、Spring Interceptor、网关过滤器都是责任链思想的成熟实现。四、工程化提醒链的组装要显式避免每个节点自己偷偷持有下一个节点否则链路关系会变得隐晦注意链尾兜底生产上必须处理“无人认领”的情况否则请求会静默丢失链太长时考虑性能与可读性如果处理者只是简单函数可以退化为一个有序列表或函数式ListPredicate。小结责任链模式一句话请求自己找主人主人排成一队。它把多层 if-else 变成可独立维护、可动态组合的处理节点让新增规则不再改动核心分支。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号