设计模式-Spring中常用的设计模式

设计模式是一种思想,是一种更快更好更优雅的解决问题的一种思想。这种思想在很多优秀的框架中都有落地。比如 Spring 框架。

接下来,我将从我的角度出发,粗浅的想一下,Spring 框架中常用的一些设计模式。
Spring 框架核心解决的问题是什么呢?个人理解是为了解决对象之间复杂的依赖关系,降低耦合。或者可以这么说,做项目我们也可以什么框架都不用,实现功能的时候,创建多个类,自己去维护类什么时候创建、使用、销毁等生命周期以及类之间的关系。自己维护的很好或者功能很简单的话,也可以不使用框架。框架本身也就是一个黑盒工具而已,开源使我们可以将其白盒化。

既然Spring框架的核心内容假设是解决对象之间复杂的依赖关系。 通俗来说便是“要啥给啥”。为了实现这个目的,Spring 核心的 IOC 容器出现了,对象都放在这个容器里,需要的时候从里面取。那就涉及到几点:

  1. 创建对象,保存对象,保存对象之间的关联关系
  2. 获取对象

1. 创建对象

涉及到如何创建,是只创建一次还是创建多次,有关联关系,先创建A还是先创建B等。 单例模式、原型模式、工厂模式、策略模式 可以来帮忙。
工厂模式:
Spring 中的 BeanFactory、FactoryBean
单例模式:
保证一个类仅有一个实例,并提供一个全局访问点。Spring 下默认创建的 Bean 都是单例对象。
常用的单例模式写法又有很多:最简单的就是 懒汉式了,还有 饿汉式、注册式、序列化方式、枚举方式等。

2. 获取对象

获取对象的时候,有策略方法,也可以通过代理进行功能增强等。策略模式、代理模式、模板方法模式、适配器模式、装饰器模式等

代理模式:
为其他对象提供一种代理以控制对这个对象的访问。从结构上来看和 装饰器模式类似, 但 Proxy 是控制,更像是一种对功能的限制,而 装饰器是增加职责。
Spring 的 AOP 代理,应该是很出名的。JdkDynamicAopProxy、Cglib2AopProxy。

你可能感兴趣的:(设计模式,设计模式)