提醒:当前所讲的所有的设计模式都是基本的一种设计思维,到了真正所使用的时候其设计代码肯定和我们之前设计的完全不同所以请读者不要形成硬式思维!
责任链模式:
定义:为请求创建一个接收此次请求对象的链
类型:行为型
适用场景:
一个请求的处理需要多个对象当中的一个或几个协作处理
优点:
请求的发送者和接收者(请求的处理)解耦
责任链可以动态组合
缺点:
责任链太长或者处理时间太长,影响性能
责任链有可能过多
相关设计模式:
责任链模式和状态模式
Coding:
创建Course类
创建抽象类Approver(在很多地方也取名为handler)
创建ArticleApprover类继承Approver抽象类,里面的approver对象是来自于父类Approver中的
创建VideoApprover类其结构和上面的ArticleApprover类似
当前的UML类图
创建Test
运行结果:
重点流程分析:这里你一定得注意一个东西:videoApprover是保存在articleApprover对象里面的approver当中的。所以在进入
所以在进入第一层判断是否含有手记,然后在进入第二层判断是否含有approver(也就是VideoApprover),如果在VideoApprover又调用一个,这样下次就形成了环环相扣那种,链条式处理
JDK中的应用
类filter
将请求组织起来以链条的形式进行处理,也就是相当于责任链模式
我们可以看到的其他子类的具体实现,下面这个就非常明显了,责任链式处理
Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。
它的内容包括:
- 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
- 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
- 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
- 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
- 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
- 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
- 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
- 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw
目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:
想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询
同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。