Spring框架中的设计模式

Spring框架是Java企业级应用开发中使用频率非常高的一个开发框架,也是Java开源项目中最受大家关注的项目之一。通过阅读Spring的源码,了解Spring的核心实现原理,深入理解Spring框架的设计思想,对我们后续的编码开发有非常大的指导作用。接下来我来分享一下在阅读源码过程中,结合GOF设计模式,梳理了一下Spring框架中使用到的一些设计模式,并且了解是如何运用的。

1、Factory模式

工厂模式是最常用的设计模式之一,其中包括简单工厂模式、抽象工厂模式。实现意图是定义一个用于创建对象的接口,由子类来决定实例化哪个类。

标准的工厂模型的UML类图如下:

回到Spring框架中来,Spring的IOC容器的实现,就是一个大的工厂模式的实现。BeanFactory工厂管理着Spring容器里面所有的Bean的实例,包含了Bean的实例化、状态变更、销毁过程的整个生命周期。

BeanFactory工厂模型的UML类图:

2、Builder模式

Builder模式的设计思想是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。

Builder模式的UML类图:

Director:定义复杂对象的构建过程,调用Builder抽象类的各个构建接口,完成产品对象的构建。

Builder:抽象类,定义各种对象Build需要的接口。

ConcreteBuilder:抽象类的子类,实现Builder定义的各个接口,完成产品的构建。

在Spring的IOC容器启动过程,实际上就是利用Builder模式来实现最终context对象的构建过程。简单梳理一下Spring容器启动的过程:

说明:Spring容器的启动过程,实际上就是Bean的实例化过程。在整个过程中,AbstractApplicationContext就是充当了Builder模式中的Director的角色,分别操作不同的Builder来实现不同类型Bean的实例化与注册过程。

未完待续。。。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();