spring中用到的设计模式及应用场景

1.工厂模式:在Beanfactory和applicationContext创建中都用到了

2.单例模式:Bean默认就是单例模式,单例模式只允许创建一个对象,获取两个bean对象会发现他们的内存地址是一样的

  <bean id="emp" class="entity.employee" scope="singleton"></bean>

3.多例模式:把scope="singleton"改成scope=“prototype”, 每次获取这个bean都会创建一个新的bean对象,内存地址都不一样。

  <bean id="emp" class="entity.employee" scope="prototype"></bean>

1,2,3属于创建型模式

4.代理模式:Spring AOP 底层就是用了动态代理

5.适配器模式:就比如springmvc执行原理有一步就用到了, DispatcherServlet通过HandlerAdapter处理器适配器调用具体的处理器也就是Controller。

6.装饰器模式: 就是动态的给一个对象添加一些额外的职责。

4,5,6属于结构型模式

7.模板模式:spring提供的数据库访问的模板类JdbcTemplate、消息处理的模板类JMSTemplate、HTTP通信的模板类RestTemplate都用到了模板设计模式

8.策略模式: 策略模式需要定义一个策略接口,不同的策略都去实现策略接口,在需要调用过程中通过持有该策略接口,然后根据不同的场景去使用不同的实现类 。

9.委派模式: 它的基本作用就是负责任务的调用和分配任务, 应用场景:委派对象本身不知道如何处理一个任务或请求,而交给其他对象来处理;

经典案例:老板想要做一个XX项目,安排给项目经理,项目经理事先是了解整个项目组的每个人的职责的,于是项目经理拿到项目之后,分模块分配给项目组的成员。

10.观察者模式:用于spring监听事件

spring中用到的设计模式及应用场景相关推荐

  1. 面试官:Spring中用了哪些设计模式?

    spring中常用的设计模式达到九种,我们举例说明. 以后再也不怕面试官问我:Spring中用了哪些设计模式了. 1.简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式, ...

  2. Spring中用了哪些设计模式

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.好了,话 ...

  3. Spring中用到的设计模式

    目录 ​编辑 1.模板模式 1.JDK->AQS,基于AQS创建锁 2.Spring IOC容器的初始化 3.Spring 依赖注入(IOC 控制反转): 4.Spring AOP: 5.Spr ...

  4. spring中用到哪些设计模式

    1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了: 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationCon ...

  5. 面试官:谈谈Spring中用到了哪些设计模式?

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案. Spring 框架中广泛使用了不 ...

  6. spring中用到的9种设计模式

    spring中用到了9种设计模式,学习spring的源码以及设计模式,可以提高开发人员软件设计以及开发的水平,写出更加优雅的代码. 文章目录 简单工厂(非23种设计模式中的一种) 工厂方法 单例模式 ...

  7. 力学笃行系列之Spring和JDK设计中用到的设计模式

    设计模式 Spring中用到了那些设计模式 简单工厂模式 工厂方法 单例模式 代理模式 观察者模式 JDK中的设计模式 Singleton(单例) Runtime Factory(静态工厂) Clas ...

  8. Spring中用到的九种设计模式

    spring中常用的设计模式达到九种,我们举例说明: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一.  简单工厂模式的实质是由 ...

  9. 工作中用到的设计模式?

    我在X游戏接入平台中使用了模板方法模式,场景:研发的游戏需要推向不同的渠道,每个渠道的用户登录和充值接口的实现都不太一样,而X游戏平台作为一个游戏接入不同渠道的服务平台需要保证游戏接入的一致性,以及消 ...

最新文章

  1. php 链接excel表格数据,php 怎么把数据导出到excel表格?php 连接 excel表格数据库数据...
  2. 圆桌的项目Alpha冲刺——测试
  3. thread java 关闭_怎么在java中关闭一个thread
  4. 判断一个数字是否存在于某一个数据之中
  5. Leetcode PHP题解--D84 371. Sum of Two Integers
  6. 学习重要,还是学会学习重要
  7. MySQL图形化管理器——EMS SQL Management Studio
  8. Mac OS 10.12 - 如何关闭Rootless机制?
  9. Delphi中CoInitialize之探究
  10. Kylin 与 Spark SQL相比,有哪些差异和优势?
  11. win7桌面背景_win7桌面背景怎么改?
  12. 微信小程序上传 分享发测试
  13. 计算机ps一级知识点,2018年全国计算机一级Photoshop考什么内容?
  14. iOS多控制器-视图切换.
  15. feign.RetryableException: xxx executing POST
  16. APIO2016滚粗记
  17. Sql学习第三天——SQL关于with ties
  18. 一起来学习网站SEO优化工作流程到底怎么做?
  19. 微带线特性阻抗计算公式_几种计算微带线特性阻抗的方法.pdf
  20. html常用长度单位

热门文章

  1. vue 自定义组件 创建及其使用
  2. C语言验证“巴德赫尔猜想”
  3. canal+zookeeper+mysql高可用配置
  4. 河南省第六届大学生程序设计竞赛——外星人的供给站
  5. 语句覆盖、判定覆盖、条件覆盖 - 白盒笔试题解析
  6. 学习笔记-工程图学基础(一)
  7. 关于PS降噪的两种方法
  8. 【04】进阶:Git系统中的分支操作与管理
  9. 7.Excuse me/thanks|/Help/ask/some/祈使句
  10. Triton Inference Server教程2