设计模式学习(二十四):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 和 代码UML 图
代码
更多设计模式学习专栏
参考资料
- 设计模式就该这样学:基于经典框架源码和真实业务场景
- 【二十四 设计模式学习:Spring 中使用到的设计模式】Head First 设计模式
- 设计模式-可复用面向对象软件的基础
- 坦克大战-马士兵
- 菜鸟教程-设计模式
- 极客时间-设计模式之美-王争
推荐阅读
- Java安全之CC3
- TensorFlow深度学习!构建神经网络预测股票价格!?
- JUC学习笔记——共享模型之管程
- Seata Server 1.5.2 源码学习
- 2022极端高温!机器学习如何预测森林火灾?? 万物AI
- 1.nginx学习
- 常用Python库整理
- 图学习参考资料 词向量word2vec
- JUC学习笔记——进程与线程
- Seata 1.5.2 源码学习