设计模式学习(二十四):Spring 中使用到的设计模式
设计模式学习(二十四):Spring 中使用到的设计模式
作者:Grey
原文地址:
博客园:设计模式学习(二十四):Spring 中使用到的设计模式
CSDN:设计模式学习(二十四):Spring 中使用到的设计模式
观察者模式
定义一个继承 ApplicationEvent 的事件;定义一个实现了 ApplicationListener 的监听器;定义一个发送者 DemoPublisher ,发送者调用 ApplicationContext 来发送事件消息。
模板方法
适配器模式
Spring 定义了统一的接口 HandlerAdapter ,并且对每种 Controller 定义了对应的适配器类。这些适配器类包括: AnnotationMethodHandlerAdapter 、 SimpleControllerHandlerAdapter 、 SimpleServletHandlerAdapter 等
策略模式
AopProxy 是策略接口, dkDynamicAopProxy、CglibAopProxy 是两个实现了 AopProxy 接口的策略类。策略的创建一般通过工厂方法来实现。对应到 Spring 源码, AopProxyFactory 是一个工厂类接口, DefaultAopProxyFactory 是一个默认的工厂类,用来创建 AopProxy 对象。
组合模式
CacheManager 组合 Cache
装饰器模式
TransactionAwareCacheDecorator 增加了对事务的支持,在事务提交、回滚的时候分别对 Cache 的数据进行处理。 TransactionAwareCacheDecorator 实现 Cache 接口,并且将所有的操作都委托给 targetCache 来实现,对其中的写操作添加了事务功能。这是典型的装饰器模式的应用场景和代码实现
工厂模式
BeanFactory 类和 ApplicationContext 相关类( AbstractApplicationContext、ClassPathXmlApplicationContext、FileSystemXmlApplicationContext等)
UML 和 代码
更多
参考资料
相关文章
- c 线程安全的单例模式-c多线程并发处理方式_Java多线程面试题:线程锁+线程池+线程同步等
- JavaScript 常见面试题分析(三)
- JavaScript 常见面试题分析(四)
- 怎么让面试官喜欢你?
- 《YOLOv5全面解析教程》十二,Loss 计算详细解析
- CSS3伸缩盒Flexible Box
- 移动端图片操作(二)——预览、旋转、合成
- 移动端图片操作(一)——上传
- 实现tap的多种方式
- 触屏touch事件记录
- 前端自动化构建工具gulp记录
- 《从程序员到项目经理》内容记录
- jQuery中的Sizzle引擎分析
- PHP类的原理
- PHP变量和数据类型
- PHP代码的执行
- 前端面试题目搜集
- PHP面试题目搜集
- PHP中MySQL操作
- 赚点微信页面外快的一点记录