福州网站排名推广,wordpress对接静态网页,一个公司做网站需要注意什么条件,湛江做网站苏州厂商近期看了 mybatis 的源码#xff0c;发现二级缓存这块用了装饰器模式将各个功能的缓存进行嵌套#xff0c;源码上也是讲到使用了装饰器模式#xff0c;但是看着跟责任链模式类似#xff0c;本着搞清楚的想法#xff0c;搜了很多资料#xff0c;看了书籍《Head First 设计…
近期看了 mybatis 的源码发现二级缓存这块用了装饰器模式将各个功能的缓存进行嵌套源码上也是讲到使用了装饰器模式但是看着跟责任链模式类似本着搞清楚的想法搜了很多资料看了书籍《Head First 设计模式》上对于装饰器模式和责任链模式的讲解思考如下 装饰器模式
特点
通过委托来实现一般是定义了一个 delegate 变量来引用定义的操作的接口流程中的各个节点都参与了处理运行时动态处理。
使用场景
适用于灵活变动需要组合处理的情况即协作处理各个节点无阻塞直到执行到最底层的节点需要反馈会逆序返回。
编码形式
简单对于执行的操作只需要调用一次即可各个具体装饰类实现会链式调用委托对象的方法进行处理。
使用案例
spring 中的 aop 实现的事务管理和日志管理。
书籍《Head First 设计模式》上对于装饰器模式用了一个饮料加配料的例子来讲解这个问题。 责任链模式
特点
各个节点经过了流转但是不一定进行了处理能处理就处理不能处理就走过场转交给别人即使处理了不一定有结果。自己处理不了的交给别人。
使用场景
适用于对于某些操作可能指定了一系列操作步骤例如审批各个步骤都需要执行。
编码形式
麻烦对于执行的操作每个过程需要编码实现。 使用案例
工作流审批
javaee 中的 filter chain 参考链接
https://blog.csdn.net/qq_42449106/article/details/131542919
https://blog.csdn.net/jiadajing267/article/details/106889562
https://www.cnblogs.com/darope/p/12695256.html