详解工厂模式与抽象工厂模式有什么区别?【图解+代码】

目录

工厂模式,抽象工厂模式是什么?

两种设计模式的流程:

1、工厂模式

2、抽象工厂模式

两种模式的对比

共同点:

不同点:

总结


工厂模式,抽象工厂模式是什么?

我已经具体的写了这两种模式及代码示例,可以点开去了解一下这两种设计模式是什么样子的:

工厂模式: 设计模式 之 ------ 工厂模式-CSDN博客

抽象工厂模式: 设计模式 之 ------ 抽象工厂模式-CSDN博客

这篇博客用来对上面两篇博客做一下比较,没看过的可以去学习一下,里边含具体代码,及实现结果。

两种设计模式的流程:

1、工厂模式

2、抽象工厂模式

两种模式的对比

共同点:

1、两种模式都通过封装对象的创建过程,将客户端代码与具体的实现类分离。

2、都使用工厂方法来创建对象,而不是直接使用new关键字。(将对象的创建过程封装起来)

3、都遵循"开闭原则",增加新的产品时,两种模式均可以在不修改客户端代码的情况下,通过增加新的产品类来扩展系统。

4、都遵循"单一职责原则",即工厂类负责对象的创建,客户端负责对象的使用。

不同点:

1、工厂模式是创建单一的产品对象,即一个工厂负责创建一类产品。

抽象工厂模式是创建产品族,即一个工厂负责创建一系列相关的产品对象。

2、工厂模式更加灵活,可以很容易地增加新的产品类型,但不能轻易地切换产品族。

抽象工厂模式可以很容易地切换不同的产品族,但不能轻易地增加新的产品类型(因为这需要修改抽象工厂接口。)

3、工厂模式的客户端代码依赖于具体的工厂实现类。

抽象工厂模式的客户端代码依赖于抽象工厂接口,而不依赖于具体的工厂实现类。

4、工厂模式通常只有一个抽象工厂接口和多个具体工厂实现类。

抽象工厂模式通常有一个抽象工厂接口,以及多个具体工厂实现类,每个实现类创建一个产品族。

总结

当你需要创建一个对象,但不关心它的具体类型时,可以使用工厂模式。如果需要产品切换族,适合使用抽象工厂模式。

工厂模式 适用于创建单一产品 的场景,而抽象工厂模式 适用于创建产品族的场景。

java代码链接

工厂模式: 设计模式 之 ------ 工厂模式-CSDN博客

抽象工厂模式: 设计模式 之 ------ 抽象工厂模式-CSDN博客

相关推荐
2501_91676654几秒前
【Java】final关键字
java·开发语言
C雨后彩虹2 分钟前
ConcurrentHashMap 核心锁机制:CAS+Synchronized 的协同工作原理
java·数据结构·哈希算法·集合·hashmap
柒许宁安4 分钟前
在 Cursor 中运行 Android 项目指南
android·java·个人开发
任子菲阳5 分钟前
学Javaweb第四天——springboot入门
java·spring·mybatis
毕设源码-赖学姐9 分钟前
【开题答辩全过程】以 基于Springboot的球场管理平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
C雨后彩虹19 分钟前
HashMap的线程安全问题:原因分析与解决方案
java·数据结构·哈希算法·集合·hashmap
BD_Marathon24 分钟前
设计模式——类图
设计模式
有趣灵魂26 分钟前
Java-Spingboot根据HTML模板和动态数据生成PDF文件
java·pdf·html
BIBI204931 分钟前
Windows 上配置 Nacos Server 3.x.x 使用 MySQL 5.7
java·windows·spring boot·后端·mysql·nacos·配置
一雨方知深秋33 分钟前
面向对象高级语法 1-- 继承、多态
java·方法重写·继承extends·子类构造器调用父类构造器·兄弟构造器this·对象、行为多态·解耦合父类变量为形参接子类对象