大话设计模式-三种工厂模式(简单工厂、工厂方法、抽象工厂)

简介: 大话设计模式-三种工厂模式(简单工厂、工厂方法、抽象工厂)

工厂模式

分为三种:简单工厂模式,工厂方法模式,抽象工厂模式

他们都属于创建模式,下一篇博客会把23种设计模式进行分类

简单工厂模式

定义:定义了一个创建对象的类,由这个类来封装实例化对象的行为

存在的问题:类的创建依赖于工厂类,想要更改拓展程序时必须修改工厂类,违背了开放-封闭原则。

如何解决:可以定义一个创建对象的抽象方法同时创建多个不同的工厂类实现该抽象方法。其实就是工厂方法模式

工厂方法模式

定义:定义了一个创建对象的抽象方法,由子类决定要实例化的类。

存在的问题:客户端需要创建类的具体实例,增加了用户的操作复杂性。如何解决这一问题:我们可以把工厂类抽象为接口,用户只需要去找默认的工厂提出自己的需求(传入参数),便能得到自己想要产品,而不用根据产品去寻找不同的工厂,方便用户操作。这也就是接下来要说的抽象工厂模式

抽象工厂模式

定义:定义了一个接口用于创建相关或有依赖关系的对象族,而无需明确指定具体类。

工厂模式适用场合

当有很多产品需要创建而这些产品又具有共同的接口就可以适用

使用选择

简单工厂 : 用来生产同一等级结构中的任意产品。(不支持拓展增加产品)

工厂方法 :用来生产同一等级结构中的固定产品。(支持拓展增加产品)抽象工厂 :用来生产不同产品族的全部产品。(支持拓展增加产品;支持增加产品族)

通俗来讲:工厂方法像工厂中的一个生产线,而抽象工厂是一个工厂。

相关文章
|
17天前
|
设计模式 测试技术
【设计模式系列笔记】工厂模式
工厂模式是一种创建型设计模式,其主要目的是将对象的创建过程抽象出来,以便在需要的时候由子类来实现。这种模式提供了一种方法,通过调用一个共同的接口来创建一组相关或依赖的对象,而无需指定其具体的类。
126 4
|
15天前
|
设计模式 Java
Java一分钟之-设计模式:工厂模式与抽象工厂模式
【5月更文挑战第17天】本文探讨了软件工程中的两种创建型设计模式——工厂模式和抽象工厂模式。工厂模式提供了一个创建对象的接口,延迟实例化到子类决定。过度使用或违反单一职责原则可能导致问题。代码示例展示了如何创建形状的工厂。抽象工厂模式则用于创建一系列相关对象,而不指定具体类,但添加新产品可能需修改现有工厂。代码示例展示了创建颜色和形状的工厂。根据需求选择模式,注意灵活性和耦合度。理解并恰当运用这些模式能提升代码质量。
28 2
|
17天前
|
设计模式 Java uml
【设计模式】什么是工厂方法模式?
【设计模式】什么是工厂方法模式?
14 1
|
17天前
|
设计模式 uml
【设计模式】一文搞定简单工厂模式!
【设计模式】一文搞定简单工厂模式!
15 2
|
17天前
|
设计模式 安全 Java
【设计模式学习】单例模式和工厂模式
【设计模式学习】单例模式和工厂模式
|
17天前
|
设计模式 Java
Java 设计模式:工厂模式与抽象工厂模式的解析与应用
【4月更文挑战第27天】设计模式是软件开发中用于解决常见问题的典型解决方案。在 Java 中,工厂模式和抽象工厂模式是创建型模式中非常核心的模式,它们主要用于对象的创建,有助于增加程序的灵活性和扩展性。本博客将详细介绍这两种模式的概念、区别以及如何在实际项目中应用这些模式。
17 1
|
17天前
|
设计模式 存储 JavaScript
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
|
17天前
|
设计模式 Java Go
[设计模式Java实现附plantuml源码~创建型] 集中式工厂的实现~简单工厂模式
[设计模式Java实现附plantuml源码~创建型] 集中式工厂的实现~简单工厂模式
|
17天前
|
设计模式 测试技术 Go
[设计模式 Go实现] 创建型~工厂方法模式
[设计模式 Go实现] 创建型~工厂方法模式
|
17天前
|
设计模式 测试技术 Go
[设计模式 Go实现] 创建型~简单工厂模式
[设计模式 Go实现] 创建型~简单工厂模式