Spring中使用的设计模式
简单工厂
- 又称为静态工厂,简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定创建哪一个产品类。
- Spring中BeanFactory通过传入一个唯一标示来获取bean对象
工厂方法
- 程序将对象的创建及初始化职责交给工厂对象,工厂父类负责定义创建产品对象的公共接口,工厂子类负责生成具体的产品对象。将产品类的实例化操作延迟到工厂子类中完成。
- Spring中的FactoryBean就是一个典型的工厂方法模式。
单例
- 保证一个类仅有一个实例,并提供一个访问他的全局访问点。
- Spring下默认的bean均为singleton,通过singleton或者scope属性指定
适配器
- 将一个接口转换成客户希望的另一个接口,使得接口不兼容的类可以一起工作,其别名为Wrapper。
- Spring中AOP的处理利用了Adapter模式
装饰器
- 动态的给一个对象添加一些额外的职责。就增加对象功能来说,装饰模式比生成子类实现更为灵活,别名与适配器相同。
- Spring中类名中含有Wrapper或者Decorator中应用了装饰器
代理
- 为其他对象提供一种代理以控制对这个对象的访问。
- Spring中AOP就是利用JDK动态代理来增强类的切面管理。
观察者
- 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都被通知并被自动更新
- spring中listener利用了观察者模式
策略
- 定义一系列的算法,将他们封装起来,并且使他们可互相替换,策略模式让算法独立于使用它的客户而变化,也称为政策模式。
- Spring在实例化对象的时候使用到策略模式。
模板方法
- 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
- Spring中jdbcTemplate就使用了模板方法。