首页 > 其他分享 >设计模式学习(二十四):Spring 中使用到的设计模式

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

时间:2022-11-12 19:46:01浏览次数:75  
标签:Spring 适配器 模式 接口 二十四 设计模式

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

作者:Grey

原文地址:

博客园:设计模式学习(二十四):Spring 中使用到的设计模式

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

观察者模式

定义一个继承 ApplicationEvent 的事件;定义一个实现了 ApplicationListener 的监听器;定义一个发送者 DemoPublisher ,发送者调用 ApplicationContext 来发送事件消息。

模板方法

image

适配器模式

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,适配器,模式,接口,二十四,设计模式
From: https://www.cnblogs.com/greyzeng/p/16884487.html

相关文章

  • 模板设计模式
    对于模板方法,最好使用final关键字进行修饰。 那么,final修饰变量,又分为两种情况。 一,修饰基本数据类型其值不能被更改 二,修饰引用数据类型其地址值不能被更改,但......
  • 设计模式学习(二十三):中介模式
    设计模式学习(二十三):中介模式作者:Grey原文地址:博客园:设计模式学习(二十三):中介模式CSDN:设计模式学习(二十三):中介模式中介模式中介模式是一种行为型模式。举个简单的例子......
  • 【设计模式】以国足的例子来解释代理模式,希望自己不要被退钱
    文章目录​​1代理模式​​​​1.1代理模式的解释​​​​1.2代理模式的四个对象​​​​2例子​​​​2.1释义​​​​2.2代码​​​​2.3效果图​​​​3静态代理......
  • 【SpringBoot】必须掌握的45个注解
    1、SpringBoot/spring@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;@Repository:用于标注数据访问组件,即DAO组件......
  • 11-SpringBoot2整合Vue最简入门
    vuejs入门环境搭建》1:导入文件<scripttype="text/javascript"src="js/vue.js"></script><scripttype="text/javascript"src="js/axios.js"></script>》2:准备app视......
  • 08-SpringBoot2.0 集成 mybatis注解开发***
    1,依赖pom.xml<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><versi......
  • 设计模式-原型模式
    原型模式的核心在于拷贝源对象,UML类图如下:其中主要有三个角色:客户(client):客户类提出创建对象的请求抽象原型(Prototype):规定拷贝接口具体原型(ConcreatePrototyoe):被拷贝对象......
  • 设计模式学习(二十一):命令模式
    设计模式学习(二十一):命令模式作者:Grey原文地址:博客园:设计模式学习(二十一):命令模式CSDN:设计模式学习(二十一):命令模式命令模式命令模式是一种行为型模式。通过调用者调用......
  • SpringBoot(二):创建SpringBoot项目的方式
    一、通过官网进行创建官网创建链接:https://start.spring.io/1.官网页面配置: Project:我们需要选择项目类型,我使用的是Maven项目;Language:使用的是Java语言,选择Java;Sp......
  • 设计模式学习(二十):备忘录模式
    设计模式学习(二十):备忘录模式作者:Grey原文地址:博客园:设计模式学习(二十):备忘录模式CSDN:设计模式学习(二十):备忘录模式备忘录模式备忘录模式是一种行为型模式。用于记录对......