二十四 设计模式学习:Spring 中使用到的设计模式

设计模式学习(二十四):Spring 中使用到的设计模式作者:Grey
原文地址:
博客园:设计模式学习(二十四):Spring 中使用到的设计模式
CSDN:设计模式学习(二十四):Spring 中使用到的设计模式
观察者模式

定义一个继承 ApplicationEvent 的事件;定义一个实现了 ApplicationListener 的监听器;定义一个发送者 DemoPublisher ,发送者调用 ApplicationContext 来发送事件消息 。
模板方法
二十四 设计模式学习:Spring 中使用到的设计模式

文章插图
适配器模式
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 设计模式
  • 设计模式-可复用面向对象软件的基础
  • 坦克大战-马士兵
  • 菜鸟教程-设计模式
  • 极客时间-设计模式之美-王争

    推荐阅读