设计模式(design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
目前出版了许多关于设计模式的书籍,我最喜欢的一本就是《大话设计模式》,该书形象生动的阐述了设计模式,今天我们以Spring为例探讨一下设计模式在Spring框架中的应用,Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称业界标杆,而Spring中常用的设计模式达到九种,我们一起来看一下
- 简单工厂
简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种设计模式之一,简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个类
Spring中的BeanFactory就是简单工厂模式的体现。
- 工厂方法
通常由应用程序直接使用new创建新对象,为了将创建对象和使用解耦,采用工厂模式将对象的创建和初始化交给工厂对象。
一般情况下,应用程序有自己的工厂对象来创建bean,如果将应用程序自己的工厂对象交给Spring管理,那么Spring管理的就不是普通bean而是工厂bean,例如Spring中的FactoryBean就是典型的工厂方法模式
- 单例模式
单例模式就是保证一个类仅有一个示例,并提供一个访问它的全局访问点。
Spr