设计模式之工厂模式

简介: 简单工厂模式 简单工厂其实不算是一个真正的“模式”,反而像一种编程习惯。如下面披萨的简单工厂类图:披萨商店将生产披萨的任务交给披萨工厂,只负责获取从工厂返回的披萨对象即可。 工厂模式 工厂方法模式定义 工厂方法模式定义了一个创建对象的接口,但由子类决定到底要实例化的类是哪一个。

简单工厂模式

简单工厂其实不算是一个真正的“模式”,反而像一种编程习惯。
如下面披萨的简单工厂类图:
在这里插入图片描述
披萨商店将生产披萨的任务交给披萨工厂,只负责获取从工厂返回的披萨对象即可。

工厂模式

工厂方法模式定义

工厂方法模式定义了一个创建对象的接口,但由子类决定到底要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
类图如下:
在这里插入图片描述

抽象工厂模式定义

抽象工厂模式提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类。
类图如下:
在这里插入图片描述

用披萨的例子来看 如下:
在这里插入图片描述
简单工厂模式
简单工厂其实不算是一个真正的“模式”,反而像一种编程习惯。
如下面披萨的简单工厂类图:
在这里插入图片描述
披萨商店将生产披萨的任务交给披萨工厂,只负责获取从工厂返回的披萨对象即可。

工厂模式
工厂方法模式定义
工厂方法模式定义了一个创建对象的接口,但由子类决定到底要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
类图如下:
在这里插入图片描述

抽象工厂模式定义
抽象工厂模式提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类。
类图如下:
image

相关文章
|
7月前
|
设计模式
设计模式【二】:工厂模式
设计模式【二】:工厂模式
49 0
|
设计模式 Java
设计模式~工厂模式-03
工厂模式 简单工厂模式 优点: 缺点: 工厂方法模式
56 0
|
设计模式 Java C++
设计模式之工厂模式详解和应用
设计模式之工厂模式详解和应用
74 0
|
3月前
|
设计模式 Java 关系型数据库
设计模式——工厂模式
工厂模式介绍、静态简单工厂模式、工厂方法模式、抽象工厂模式、JDK 源码分析
设计模式——工厂模式
|
6月前
|
设计模式 XML 缓存
设计模式-工厂模式-1-2
【6月更文挑战第11天】工厂模式用于封装对象创建,但当load函数与工厂类耦合时,问题出现。为解决此问题,引入了工厂的工厂,如`RuleConfigParserFactoryMap`,它创建并缓存工厂对象,简化了代码修改。然而,过多的Factory类会增加复杂性,简单工厂模式在此类应用中更为适用。当对象创建逻辑复杂,需组装其他对象或避免if-else时,采用工厂方法模式。抽象工厂则处理多维度分类的对象创建。总结:工厂模式的核心价值在于封装变化、代码复用、隔离复杂性和控制复杂度,适用于创建逻辑复杂的情况,否则直接使用new操作即可。
35 5
|
7月前
|
设计模式 算法 uml
C++设计模式(工厂模式)
C++设计模式(工厂模式)
113 1
C++设计模式(工厂模式)
|
设计模式 Java C#
设计模式之工厂模式(2)
接着,我们定义一个抽象工厂类AbstractFactory,它有两个抽象方法createShape和createColor,分别返回一个Shape对象和一个Color对象: java
59 0
|
设计模式 前端开发 Java
设计模式之工厂模式(1)
工厂模式是一种对象创建型模式,它提供了一种创建对象的最佳实践。在工厂模式中,我们在创建对象时不使用 new 关键字,而是通过调用工厂方法来创建对象。工厂方法是一种在子类中定义的方法,该方法负责实例化对象。工厂方法可以返回不同的对象类型,因此工厂模式可以创建一组相关或不相关的对象。这样就可以将对象的创建和使用解耦。
67 0
|
设计模式
设计模式之工厂模式
设计模式之工厂模式
67 0
|
设计模式
【设计模式】工厂模式
【设计模式】工厂模式