当前位置: 首页 > JavaEE >3种Java工厂模式深入理解分析

3种Java工厂模式深入理解分析

客服
余老师华为答疑老师
华为官方授权认证讲师
客服
客服
客服
更新时间:2020年05月21日   作者:spoto |  java工厂模式   java设计模式   工厂方法模式  

我们知道,为了可重用代码、让代码更容易被他人理解、保证代码可靠性,于是就有了Java设计模式,而在23种Java设计模式中,最为常见的就是Java工厂模式。
3种Java工厂模式深入理解分析

Java工厂模式的概念

工厂模式适用于创建新对象最简单的办法是使用new关键字和具体类。工厂模式主要是为创建对象提供了接口。一般当在编码时不能预见需要创建哪种类的实例或者系统不应依赖于产品类实例如何被创建、组合和表达的细节的情况下,会使用工厂模式。
 

Java工厂模式的分类

工厂模式按照《Java与模式》中的提法分为三类,也就是题目所说的3种Java工厂模式,它们分别是简单工厂模式(Simple Factory)工厂方法模式(Factory Method)以及抽象工厂模式(Abstract Factory)。这三种模式从上至下逐步开始变得抽象,并且更具一般性。另外,还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。

JAVA简单工厂模式(Simple Factory)

简单工厂具有提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。它由工厂类角色、抽象产品角色、具体产品角色,这三种角色组成。但简单工厂模式适用于业务将简单的情况下,对于复杂的业务环境可能不太适应。而工厂方法模式恰恰解决了这个问题。

JAVA工厂方法模式(Factory Method)

工厂方法使用一个抽象工厂角色作为核心来代替在简单工厂模式中使用具体类作为核心。使用工厂方法模式足以应付工作中可能遇到的大部分业务需求。但是当产品种类非常多时,就会出现大量的与之对应的工厂类,在出现这种情况时,可以使用简单工厂模式与工厂方法模式相结合的方式来减少工厂类。

JAVA抽象工厂模式(Abstract Factory)

抽象工厂模式和工厂方法模式的区别就在于需要创建对象的复杂程度上。而且前文也提到过看,抽象工厂模式是工厂模式的三个类别里最为抽象、最具一般性的。抽象工厂模式的用意是为了给客户端提供一个接口,可以创建多个产品族中的产品对象。而且使用抽象工厂模式还要满足“系统中有多个产品族,而系统一次只可能消费其中一族产品”、“同属于同一个产品族的产品以其使用”这两个条件。

设计模式的经典之处,就在于解决了编写代码的人和调用代码的人双方的痛楚,不同的设计模式也只适用于不同的场景,学会这3种Java工厂模式,对Java工程师来说非常有帮助!

免费预约试听课程
热门推荐
最新推荐
bg
客服扫码咨询考证课程

即刻预约

免费试听-咨询课程-获取免费资料