spring中用到的设计模式

1. 工厂模式

工厂模式通俗的来讲就是根据传入参数的不同去生产不同的类的模式,生产出来的类有着共同的父类,工厂本身也能看做是一个类

  • BeanFactory
  • FactoryBean

在这里插入图片描述

2. 单例模式

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  • Spring依赖注入Bean实例默认是单例的。双重判断加锁 实现。
  • Spring的依赖注入(包括lazy-init方式)都是发生在getBean里。getBean的doGetBean方法调用getSingleton进行bean的创建。

3. 适配器模式

适配器模式,根据不同的规则去由适配器去选择不同的处理方法

  • HanderAdapter
  • DispatcherServlet 根据HandlerMapping返回的handler,向HandlerAdatper发起请求,处理Handler。HandlerAdapter根据规则找到对应的Handler并让其执行,执行完毕后Handler会向HandlerAdapter返回一个ModelAndView,最后由HandlerAdapter向DispatchServelet返回一个ModelAndView。
    在这里插入图片描述

4. 装饰器模式

5. 代理模式

动态代理:在内存中构建的,不需要手动编写代理类
静态代理:需要手工编写代理类,代理类引用被代理对象。

  • Spring AOP就是动态代理模式的一种实现,切面在应用运行的时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象创建动态的创建一个代理对象。SpringAOP就是以这种方式织入切面的。

6. 观察者模式

观察者模式(Observer Pattern):(发布订阅模式)定义对象间的一种一对多依赖天系,使得每一个对象的状态发生改变时,其相关依赖对象皆得到通知并被自动更新

  • spring的事件驱动模型使用的是 观察者模式 ,Spring中Observer模式常用的地方是listener的实现。
    事件机制的实现需要三个部分,事件源,事件,事件监听器

7. 策略模式

定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式让算法独立于使用它的客户而变化。

  • Spring框架的资源访问Resource接口 。该接口提供了更强的资源访问能力,Spring 框架本身大量使用了 Resource 接口来访问底层资源。针对不同的底层资源,Spring 将会提供不同的 Resource 实现类,不同的实现类负责不同的资源访问逻辑。
  • UrlResource: 访问网络资源的实现类。
    ClassPathResource:访问类加载路径里资源的实现类。
    FileSystemResource:访问文件系统里资源的实现类。
    InputStreamResource:访问输入流资源的实现类。
    ByteArrayResource:访问字节数组资源的实现类。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值