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

简介: 常见问题

Java工厂模式的概念

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


Java工厂模式的分类

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


JAVA简单工厂模式(Simple Factory)

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


JAVA工厂方法模式(Factory Method)

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


JAVA抽象工厂模式(Abstract Factory)

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



希望能对大家有所帮助。


相关文章
|
9天前
|
运维 监控 网络协议
由一次线上故障来理解下 TCP 三握、四挥 & Java 堆栈分析到源码的探秘
由一次线上故障来理解下 TCP 三握、四挥 & Java 堆栈分析到源码的探秘
|
17天前
|
存储 SQL 监控
JAVA 线程池的分析和使用
JAVA 线程池的分析和使用
18 0
|
2天前
|
设计模式 Java
Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三)
Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三)
|
3天前
|
存储 数据采集 分布式计算
Java中的大数据处理与分析架构
Java中的大数据处理与分析架构
|
18天前
|
设计模式 Java API
实战分析Java的异步编程,并通过CompletableFuture进行高效调优
【6月更文挑战第7天】实战分析Java的异步编程,并通过CompletableFuture进行高效调优
33 2
|
1天前
|
设计模式 算法 Java
java策略模式简单分析
java策略模式简单分析
3 0
|
1天前
|
Java UED 开发者
JVM逃逸分析原理解析:优化Java程序性能和内存利用效率
JVM逃逸分析原理解析:优化Java程序性能和内存利用效率
|
2天前
|
缓存 安全 Java
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
7 0
|
2天前
|
设计模式 Java 数据库连接
【Java设计模式 - 创建型模式2】工厂模式
【Java设计模式 - 创建型模式2】工厂模式
5 0
|
2天前
|
Java 数据库连接 调度
Java多线程,对锁机制的进一步分析
Java多线程,对锁机制的进一步分析