工厂模式详解(简单工厂模式,工厂方法模式,抽象工厂模式,只给出抽象工厂模式具体代码)

设计模式 | 用实际案例详解工厂模式 我们来看一个具体需求 看一个披萨的项目,要便于披萨种类的扩展,要便于维护,有以下要求: 披萨的种类很多(比如GreekPizz、CheesePizz等) 披萨的制作有prepare,bake,cut,box 完成披萨店订购功能 首先我们先编写一个Pizza抽象类: package com.cxc.factory.simplefactory.pizzastore.pizza; /** * 抽... 阅读详情

1.简单工厂模式(Factory)

应用场景:又叫做静态工厂方法(StaticFactory Method)模式,但不属于 23 种设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品。Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来获得 Bean 对象,但是类否是在传入参数后创建还是传入参数前创建这个要根据具体情况来

体现在代码就是:我有工厂类 (里面有getMilk方法,通过判断参数返回不同牛奶对象),牛奶接口,蒙牛类,伊利类,特仑苏类实现牛奶接口,测试main方法也就是顾客,main方法可通过工厂类的生产方法,传递一个参数,可以来获得某种牛奶对象
也就是 Milk mn = new Factory().getMilk("蒙牛");
 

2.工厂方法模式(Factory Method) 

应用场景:通常由应用程序直接使用 new 创建新的对象,为了将对象的创建和使用相分离,采用工厂模
式,即应用程序将对象的创建及初始化职责交给工厂对象。
一般情况下,应用程序有自己的工厂对象来创建 Bean.如果将应用程序自己的工厂对象交给 Spring 管
理,那么 Spring 管理的就不是普通的 Bean,而是工厂 Bean

体现在代码就是:
后面逐渐演变,分工细化,体现在代码就是:我有工厂接口,里面有生产牛奶的方法,然后有蒙牛工厂类,伊利工厂类,特仑苏工厂类,都实现工厂接口,重写方法里返回值分别为,蒙牛牛奶,伊利牛奶,特仑苏牛奶。还是有牛奶接口,蒙牛类,伊利类,特仑苏类,测试main方法也就是顾客,当需要蒙牛时创建蒙牛工厂对象来获得蒙牛牛奶

Factory fac = new MengNiuFactory();
Milk mengNiu = fac.getMilk();

 3.抽象工厂方法模式(Abstract Factory Method) 

上面是蒙牛工厂生产蒙牛牛奶,但是对于用户来说,你什么工厂不关我的事,我需要蒙牛牛奶的时候还要去找蒙牛工厂,太麻烦。我只想找一个工厂,这个工厂什么牛奶都有,我需要蒙牛时你给我蒙牛,需要伊利时给我伊利就行了,所以就有了目前最复杂工厂模式,抽象工厂模式,spring里面就用了

代码总览如下(具体代码往下翻)

Milk接口

 

蒙牛牛奶类

伊利牛奶类

抽象工厂类,

牛奶工厂类

蒙牛工厂类

伊利工厂类

测试类(是不是看到了抽象工厂类带来的好处,它对扩展开放,对修改关闭,当我用户想要喝三鹿的时候只需要修改调用方法为getSanLu即可)

使用moveit中的报错及解决 1.fatal error: moveit/move_group_interface/move_group.h: 没有那个文件或目录。// #include <moveit/move_group_interface/move_group.h> 改为。问题1 moveit/move_group_interface/move_group.h: 没有那个文件或目录。在运行c++程序时报错。 阅读详情

相关推荐

多相机标定与单应变换:用OpenCV实现BEV俯视全景图

多路监控画面分散在不同屏幕,难以快速理解全局空间关系。通过相机标定与畸变校正,利用单应矩阵将各视角图像投影到统一的地面坐标系,即可合成BEV鸟瞰全景图。该技术是车载360°环视系统和自动驾驶BEV感知的雏形,也适用于场地安防与移动机器人导航。基于Python+OpenCV的四路相机实现,完整覆盖标定、投影变换、多路羽化融合与实时优化,为多视角拼接和俯视全景图项目提供可复现的工程参考。

weixin_29056865的博客 244

工厂模式(分简单工厂模式、工厂方法模式、抽象工厂模式)

工厂模式是一种创建型设计模式,它实现了创建对象的功能。

baidu_36775904的博客 2205

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2077

三大工厂模式(简单工厂、工厂方法、抽象工厂)

设计模式之三大工厂模式介绍,有案例代码说明

hahahahanhanhan的博客 3588

Doris存储层设计介绍2——数据写入及删除流程

Doris存储层设计介绍2——数据写入及删除流程

爱吃辣条的博客 4588

熵编码(五)-CABAC(一) 基础篇

前两篇算术编码文章介绍了算术编码原理和步骤。本篇文章介绍CABAC,基于上下文自适应的二进制算术编码。本文对CABAC的基本原理进行了详细的介绍和分析,下篇文章将会对H264编码中的CABAC熵编码的实际应用进行介绍。

尹佑壮的博客 3880

简单工厂模式、工厂方法模式与抽象工厂模式总结

简单工厂模式、工厂方法模式与抽象工厂模式        之前一直没有时间对工厂模式进行总结,这里我梳理一下,我在网络上查看资料,发现每个文章的思路都不一样,这里我对其进行总结。1. 简单工厂模式   1. 1 简单工厂模式的定义         简单工厂模式也被称为静态工厂模式;使用简单工厂模式可以将产品的“消费”和生产完全分开,客户端只需要知道自己需要什么产品,如何来使用产品就可以了,具体的产品...

JianYeung的博客 428

在QTableWidget中添加支持多选的QComboBox并显示

定义自定义表格项,主要用于显示复选框自定义的多选ComboBox类自定义委托类,用于表格中的多选ComboBox代码展示如下。

YUyang0304的博客 2783

设计模式之工厂模式

法塔赫一、 简单工厂模式1. 简介2. 优缺点3. 应用场景4. 模式结构5. 代码实现二、 工厂方法模式1. 简介2. 优缺点3. 应用场景4. 模式结构5. 代码实现6. 与简单工厂的联系和区别三、 抽象工厂模式1. 简介2. 使用抽象工厂模式一般需要满足的条件3. 优缺点4. 应用场景5. 模式扩展6. 模式结构7. 代码实现8. 与工厂方法模式的联系和区别 一、 简单工厂模式 1. 简介 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。 我们把被创建的对象称为“产品”

czm_ob的博客 1610

YOLO11实战 第010期-基于yolo11的农业杂草作物目标检测实战文档(详细教程)

通过这条曲线,用户可以评估模型的检测能力,分析模型在不同阈值下对真实目标的检测是否全面。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR 曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。),它展示了不同置信度下的召回率。条曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。反映了分类器的准确性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 1522

Open3D 使用RANSAC分割平面【2026最新版】

使用RANSAC从点云中分割平面,用segement_plane函数。博客长期更新,本文最新更新时间为:2026年2月28日。

点云侠的博客 37万+

简单工厂模式,工厂方法模式,抽象工厂模式总结-java版

关于简单工厂模式,工厂方法模式,抽象工厂模式的一次总结 模式 定义 简单工厂模式 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。 工厂方法模式 定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类 抽象工厂模式 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 P...

海旋风的博客 3911

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

设计模式:简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式适用于创建对象较少且变化不频繁的情况,工厂方法模式适用于创建对象较多且需要灵活扩展的情况,而抽象工厂模式适用于创建一组相关对象的情况。 所有的工厂模式都强调一点:两个类A和B之间的关系应该仅仅是A创建B或是A使用B,而不能两种关系都有。将对象的创建和使用分离,也使得系统更加符合单一职责原则,有利于对功能的复用和系统的维护。此外,将对象的创建和使用分离还有一个好处:防止用来实例化一个类的数据和代码在多个类中到处都是,可以将有关创建的知识搬移到一个工厂类中。

李白 1896

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

5.工厂方法模式、简单工厂模式与抽象工厂模式的对比

通过一系列问题的引导,我们逐步揭示了简单工厂模式、工厂方法模式和抽象工厂模式的核心概念、优缺点以及适用场景。三种工厂模式各有千秋,它们都在不同的场景下发挥着重要作用。通过以上对比,我们可以得出以下结论:简单工厂模式:通过一个工厂类根据不同的参数创建不同的对象。适合产品种类较少的场景,简单易懂,灵活性较差。工厂方法模式:通过工厂接口让子类决定实例化哪种具体产品。适合产品种类较多且每个产品的创建逻辑不同的场景,增加了灵活性和扩展性。抽象工厂模式:适用于需要创建一系列相关产品的场景。

TinaYuNuo的博客 1298

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

简单工厂模式、工厂方法模式、抽象工厂模式

涉及代码地址:https://gitee.com/w1402943677/Factory 涉及代码地址:https://gitee.com/w1402943677/Factory 一、简单工厂模式、工厂模式、抽象工厂模式的区别 简单工厂模式:① 一个抽象产品类,可以派生出多个具体产品类。        ② 一个具体工厂类。        ③ 这个具体工厂类能选择创建一个具体产品类的实例。 工厂方法...

qq_34092585的博客 4661

重学设计模式-工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)

工厂模式将目的将创建对象的具体过程屏蔽隔离起来,从而达到更高的灵活性,工厂模式可以分为三类:简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性。《设计模式》一书中将工厂模式分为两类:工厂方法模式与抽象工厂模式。将简单工厂模式看为工厂方法模式的一种特例,两者归为一类。

m0_73629745的博客 1607

【C++】简单工厂模式/工厂方法模式/抽象工厂模式

抽象工厂模式、简单工厂模式和工厂方法模式都是【创建型】设计模式,它们的核心目的都是将对象的创建和使用分离,但在实现复杂度、灵活性和应用场景上存在显著差异。以下从定义、结构、适用场景和代码示例四个方面进行对比分析。

AAADiao的博客 958

简单理解三种工厂模式(简单工厂模式,工厂方法模式和抽象工厂模式)

区分三种工厂模式,简单工厂模式,工厂方法模式和抽象工厂模式。

m0_51506743的博客 4023

工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)

1、简单工厂模式简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出来哪一种产品类的实例.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。打个比方假设有一个工厂,他能生产出A、B两种产品。当客户需要产品的时候一定要告诉共产是哪种产品,是A还是B...

Unique-You的博客 2402

简单工厂模式,工厂模式,抽象工厂模式的区别

简单工厂模式,工厂方法模式和抽象工厂模式都是属于创建型设计模式,这三种创建型模式都不需要知道具体类。我们掌握一种思想,就是在创建一个对象时,需要把容易发生变化的地方给封装起来,来控制变化(哪里变化,封装哪里),以适应客户的变动,项目的扩展。用这三种设计模式都可以实现,那究竟这三种设计模式有什么异同呢?下面根据这三者之间的特点,优点,缺点,适用范围进行比较。 一.特点 简单工厂模式:专门定义一个...

leikun153的博客 2420

简单工厂模式、工厂方法模式和抽象工厂模式-设计模式学习

1、简单工厂模式         简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 工厂(Creator)角色         简单工厂模式的核心,它负责实现创建所有

luoxn28的专栏 1039

简单工厂模式,工厂方法模式和抽象工厂模式的异同

简单工厂模式,工厂方法模式和抽象工厂模式的异同

qq_44925149的博客 797

简单工厂模式、工厂方法模式以及抽象工厂模式代码详解

文章目录工厂模式简单工厂模式看一个具体的需求使用传统的方式来完成传统的方式的优缺点基本介绍使用简单工厂模式工厂方法模式看一个新的需求思路 1思路 2工厂方法模式介绍工厂方法模式应用案例抽象工厂模式基本介绍抽象工厂模式应用实例工厂模式在 JDK-Calendar 应用的源码分析工厂模式小结 工厂模式 简单工厂模式 看一个具体的需求 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 1)披萨的种类很多(比如 GreekPizz、CheesePizz 等) 2)披萨的制作有 prepare,bake, cut,

ygp12345的博客 624

【设计模式】简单工厂模式、工厂方法模式、抽象工厂模式

1 简介 简单工厂模式:根据传入的参数返回需要创建的对象,而不需要知道具体类的类名。(不属于GoF设计模式) 工厂方法模式:引入抽象工厂类,将具体产品的创建过程封装在其子类中,即具体工厂类中。增加新的具体产品类时,只需增加一个相应的具体工厂类。(1个具体工厂只需生产1种具体产品) 抽象工厂模式:相较于工厂方法模式,抽象工厂模式中的具体工厂可以生产相关的一组具体产品,这样的一组产品称之为产品族...

little_fat_sheep 660

创建型模式一、简单工厂模式、工厂方法模式、抽象工厂模式

文章目录一、简单工厂模式(定义一个类来负责创建其他类的实例)工厂模式核心代码二、工厂方法模式(将实际创建工作推迟到子类当中)模式中包含的角色以及职责代码工厂方法模式和简单工厂模式的比较三、抽象工厂模式(工厂接口子类决定创建哪个产品族工厂,再通过这个工厂创建对象)定义例子模式中包含的角色以及其原则工厂模式在开发中的运用写出一个简单的计算器传统写法 添加链接描述 一、简单工厂模式(定义一个类来负责创建...

weixin_38367817的博客 540
上一篇: 设计模式——前言
下一篇: 单例模式之饿汉式,懒汉式,最牛逼单例模式,枚举,注册登记式及反序列化如何保证单例
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值