Spring IOC下的工厂模式

Posted l-x-x-y-d-j

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring IOC下的工厂模式相关的知识,希望对你有一定的参考价值。

在Spring IOC容器中,我们需要创建工厂,用来管理我们需要创建的对象,因此这时就需要我们了解什么是工厂,这篇简单的小短文,可能会帮你入门,如果稍微想要仔细了解一下,可以查看这个微博https://blog.csdn.net/jason0539/article/details/23020989

在面向对象编程中,一般来说,我们需要哪个类的对象,就会自己取new 一个类的对象实例。这是根据我们需要什么,然后自己去创建什么。

 在一些情况下,我们并不想直接new 一个对象,例如,我们创建一些对象前,需要其他的一系列的步骤,可能会设置这个或获取这个对象的出事这,选择生成哪个对象自理;或者这生成这个对象之前,需要先生成这个对象的一些辅助功能的对象。例如我们要创建一个车的对象,我们就需要这个车的信息对象,或者部件对象,然后使车对象依赖这些对象。可以说是组装模型,一个大的部件,需要若干个小的部件。而工厂模式就会简化我们的操作,是我们不必关心构造对象实例的细节和复杂过程,而仅仅是得到这个对象即可。

工厂模式:

(1)简单工厂模式:我们需要一个对象,会有一个工厂帮我们创建这个对象

(2)工厂方法模式:这个对象会有很多其子对象,我们需要创建很多个具体的工厂,来创建这些子对象

(3)抽象工厂模式:这个对象会需要其他的功能或者对象,即我们是实现除此以外的对象,纪委抽象工厂模式。

 

他们之间的区别:

简单工厂模式:

     建立一个工厂来制造新的对象

工厂方法模式:

     一个抽象产品类,可以派生出很多具体产品类。

    一个抽象工厂类,可以派生出多个具体工厂类。

 抽象工厂模式:

多个抽象产品类,每个抽象产品类可以派生多个具体的产品类。

一个抽象工厂,可以派生出多个具体工厂类。

区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。   
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
两者皆可

 

简单工厂模式又叫做静态工厂方法模式,重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。 

工厂方法模式是去掉了简单工厂模式中工厂方法的静态属性,使其可以子类继承。这样子,他可以创建很多这个工厂的子工厂,可以用于更细分工厂来创建不同的对象。

 




以上是关于Spring IOC下的工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

Spring的IOC分析

Spring的IOC实现原理:反射+工厂模式具体分析

Spring 从0开始IOC 容器底层原理

spring IOC

工厂模式

理解Spring中的IOC和AOP