设计模式之建造模式

设计模式——建造者 最近的心得,我发现学一门设计模式,不管你是否能立刻理解它,第一最要紧的是要记住两个东西。1、它是属于什么范畴的设计模式。2、记住UML图。这两个是打开这个设计模式之门的金钥匙!为什么这么讲?因为刚刚学新的设计模式,如果一味的埋头在文字中,思想中,代码编写的例子中,如果你这个设计模式又不是看的很懂,实在是会让人晕头转向看的吐血身亡。结果在身亡前,你都不知道这个设计模式干什么用,也不知该怎么去写。心得 阅读详情

建造模式是之前讲的模式中,最为简单的易懂的一种模式。就好比堆积木一样,你可以拿最简单的零件组成一个超级复杂的机器人,或者另外的什么好玩具。

而什么,本来就很简单的横竖,就能产生这么神奇的效果呢?

这就是建造模式。

这个通过一个身边的例子,会马上明白这个过程,那就是,你去KFC买东西吃。

典型的儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)。这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。


这里所说的意思,就是,你去肯德基买东西,收银员并不知道,你要买什么,所以你的组合是变化的,而不管怎么变,最后,你都能买到你想要的产品,不管你今天想吃的东西组合有多复杂,都能满足你。所以这个过程就是建造。

       客户端:顾客,想去买一套套餐(这里面包括汉堡,可乐,薯条),可以有1号和2号两种套餐供顾客选择。
       指导者角色:收银员。知道顾客想要买什么样的套餐,并告诉餐馆员工去准备套餐。
       建造者角色:餐馆员工。按照收银员的要求去准备具体的套餐,分别放入汉堡,可乐,薯条等。
       产品角色
:最后的套餐,所有的东西放在同一个盘子里面。

整个过程就是:

你(客户)买可乐,薯条,付钱给收银员,然后他就会告诉后台说,出个可乐和薯条,然后等会就有人拿出来,你要的套餐(产品),你可以从柜台收银员那里拿到,假如你去餐厅(这个时候就是服务员给你送来的),说这个,就是体现产品类,可以在指导者中,也可以在建造者里面(因为他弄好套餐直接,就送过来了)。

直接来张图看个明白:


贴2个实用的链接:

1.http://blog.youkuaiyun.com/chmask/article/details/2631485

2.http://blog.youkuaiyun.com/hguisu/article/details/7518060


最后,关于建造者模式和工厂模式区别,别人的总结就是:

 建造者模式与工厂模式类似,他们都是建造者模式,适用的场景也很相似。一般来说,如果产品的建造很复杂,那么请用工厂模式;如果产品的建造更复杂,那么请用建造者模式。

用我的话说,就是,你去大众公司买汽车,你说,买个没有后门的桑塔纳2000?可以买到吗?肯定没有啊,因为这些车子都是工厂,全部自己订做好的,工厂模式。

而你去买一台组装电脑,告诉老板说,我要买一个机箱,键盘,音响,不要显示器??可以嘛,当然了,老板肯定卖给你,可是又人问,没有显示器买个啥电脑啊!!难道没显示 ,电脑就不能用了?哈哈,我用它听音乐。。。

不知道,大家理解了我觉得这2个例子了吗?上面抽象工厂模式,是有工厂统一构造,充当指导者,而后者因为太复杂,需要有专门的人来充当指导者,也就是顾客你,毕竟顾客才是上帝嘛。。。

建造者设计模式-Java实现 建造者设计模式是一种创建型设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式通常用于创建具有多个可选参数的对象,避免使用大量的构造函数或复杂的对象初始化过程。建造者设计模式是一种非常实用的创建型设计模式,适用于创建具有多个可选参数的复杂对象。通过将对象的构建过程与其表示分离,建造者模式提高了代码的可读性和灵活性。在 Java 中,我们可以通过静态内部类的方式实现建造者模式,使得对象的创建过程更加简洁和直观。 阅读详情

相关推荐

设计模式C++实现(6)——建造者模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大

wuzhekai的专栏 2万+

软件设计模式作业_创建型设计模式

1、工厂方法模式 1.1 作业题目 用工厂方法模式实现四则计算器 2、建造者模式 2.1 作业题目 建造者模式可以用于快餐店制作儿童餐。典型的儿童餐包括一个主食、一个辅食一杯饮料和一个玩具(例如汉堡﹑炸鸡﹑可乐和玩具车)·这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。无论顾客点的是汉堡﹑三明治还是鸡肉,过程都是一样的·柜台的员工直接把主食﹑辅食和玩具放在一起·这些是放在一个袋子中的·饮料被倒入杯中,放在袋子外边。这些过程在相互竞争的餐馆中是同样的。 3...

LE1076287422的博客 2628

设计模式——建造者模式

这个http://blog.youkuaiyun.com/dawanganban/article/details/9990405博客中java设计模式的源代码。下载前请先看《设计模式——建造者模式》一文。

.NET设计模式-建造者模式(Builder Pattern)

建造者模式(Builder Pattern)概述在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。

-云在青天水在瓶 1056

Blender - Shrinkwrap - 更方便的制作贴合模型的表面来建模

Shrinkwrap 修改器 使用 Blender 想要快速建模可以贴合现有模型表面的效果:衣服、皮肤、等效果,可以使用 Shrinkwrap 修改器,这个修改器的名字其实按照英文上的理解,翻译为:收缩的包裹效果 应用 如这块铁皮,它要贴合机身弯曲的效果,可以先建好一个铁皮,再 Shrinkwrap 到一个指定的网格上 留意的参数 Target 要贴合的对象(目前我已知是可以贴合到网格对象上,实在是方便) VertexGroup 顶点组,和之前讲到过的,顶点组可以组设顶点的权重,意思这个可.

Jave.Lin 的学习笔记 6070

系统安装、qt配置、安装pcie驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 安装Linux系统指定:ununtu20.04并配置相关软件环境 前言 提示:这里可以添加本文要记录的大概内容: ununtu20.04、Qt 5.9.0、pcie驱动 提示:以下是本篇文章正文内容,下面案例可供参考 一、安装系统 制作系统盘(win10),在开机时按相应键进入BIOS,(华硕需要先改配置启动->CSM->开启->第一个选项选第一个或第二个),等待即可 进入后按照https://www.sysgeek.

weixin_44832804的博客 2205

设计模式的一些练习题

放一下去年自己做的设计模式的作业 先附上源码作业地址 有兴趣的同学自行获取哦 题目1-工厂方法模式 用工厂方法模式实现四则运算器 题目2 - 建造者模式 建造者模式可以用于快餐店制作儿童餐。 典型的儿童餐包括一个主食、一个辅食一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)。这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。 无论顾客点的是汉堡、三明治还是鸡肉,过程都是一样的。 柜台的员工直接把主食、辅食和玩具放在一起。 这些是放在一个袋子中的。 饮料被倒入杯中,放在袋子外边。

King_Denggang的博客 858

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3039

创建型——建造者(Builder)day06

分离复杂对象的构建和表示 同样的构建过程可以创建不同的表示 建造者模式和模板方法模式非常像 建造者模式强调构造对象 模板方法模式强调方法执行 基本介绍 1、建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 2、建造者模式是一步一步创建一个复 杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。 建造者的四个角色 1、.

zero_ko的博客 2420

从实验室到生产线:Qwen3-Omni后训练技术在实际业务中的落地挑战

本文探讨了Qwen3-Omni后训练技术在实际业务中的落地挑战,重点分析了多模态AI在工业应用中的关键问题与解决方案。通过金融风控、跨境电商等场景案例,揭示了通用模型与垂直需求的矛盾,并提供了知识蒸馏、语音合成优化等实战经验,助力企业实现技术到业务的转化。

weixin_29035147的博客 267

Win11下USB-Blaster驱动安装全攻略:Quartus用户必看(附常见问题解决)

本文详细介绍了在Windows 11系统下为Intel FPGA开发工具Quartus安装USB-Blaster驱动的完整流程与常见问题解决方案。针对Win11更严格的驱动签名验证机制,提供了从标准安装步骤到高级故障排查(如禁用驱动强制签名、使用测试模式)的实用指南,帮助用户快速解决驱动安装失败问题,确保FPGA编程调试顺利进行。

weixin_29256771的博客 660

聊一聊:设计模式——建造者模式

建造者模式通过分步构建与链式调用,优雅解决了复杂对象创建难题。结合不可变对象与参数校验,可显著提升代码健壮性。在参数众多、构造流程复杂或需多版本对象的场景下,该模式是提升代码可维护性的利器。

weixin_42330218的博客 728

头歌OpenGauss数据库 - 单表查询 答案

本关任务:用SELECT语句检索数据表中指定字段的数据;用SELECT语句检索数据表中所有字段的数据。为了完成本关任务,你需要掌握: 1.如何获取数据表中指定字段的数据;2.如何获取数据表中的所有数据。

d214493517的博客 5720

彻底搞懂设计模式DesignPattern-建造者模式

基本介绍 建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们, 用户不需要知道内部的具体构建细节。 在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。 方便用户创建复杂的对象(不需要知道实现过程) 代码复用性 & 封装性(将对象构建过程和细节进

Ping 421

MuJoCo 入门教程(四)建模

在 MJCF 中,一个体可以包含多个关节,因此无需引入虚拟体来创建复合关节。相反,只需在同一主体中定义构成所需复合关节的所有原始关节即可。例如,可以使用两个滑块和一个铰链来模拟在平面内运动的肢体。其他 MJCF 元素可以在嵌套的主体元素所创建的树中定义,特别是关节、几何体、场地、摄像机、灯光。当一个元素被定义在一个肢体内时,它就固定在该肢体的局部坐标系上,并始终随其移动。涉及多个机构或根本不涉及机构的元素,将在运动树之外的单独部分中定义。

机器人控制与仿真应用 4162

(11-3-01 )

以太坊(Ethereum)是一种基于区块链技术的开源平台和加密货币。它于2015年由Vitalik Buterin和Gavin Wood等开发者创建,并成为比特币之后最受欢迎的加密货币之一。以太坊不仅支持加密货币交易,还为开发者和企业提供了构建去中心化应用程序的强大工具。在本节的内容中,将实型一个完整的机器学习模型项目,智能检测出以太坊区块链中的非法账户。从问题定义到模型建立和评估,再到最终的总结和建议。本实例突出了处理类别不平衡问题的重要性,并展示了如何使用多种机器学习算法来解决实际问题。此外,通过数据可

码农三叔 2170

Java设计模式-创建型设计模式-建造者模式

Java设计模式-创建型设计模式-建造者模式

Fatter$hday的博客 1609

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

设计模式之建造者模式

者模式的场景中,一般产品类和建造者类是比较稳定的,因此,将主要的业务逻。的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制。1)抽象建造者类(Builder):这个接口规定要实现复杂对象的哪些部分的创建,并。1)建造者模式所创建的产品一般具有较多的共同点,其组成部分相似,如果产品之间。2)在建造者模式中,客户端不必知道产品内部组成的细节,将产品本身与产品的创。使用建造者模式可以有效的封装变化,在使用建造。1)创建的对象较复杂,由多个部件构成,各部件面临着复杂的变化,但构件间的。

liang8999的博客 1153

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

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【深入理解设计模式】建造者设计模式

建造者设计模式(Builder Pattern)是一种创建型设计模式,旨在通过将复杂对象的构建过程拆分成多个简单的步骤,使得相同的构建过程可以创建不同的表示。该模式允许您使用相同的构建过程来创建不同的对象表示。

guojiaqi_的博客 1348

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

设计模式——建造者设计模式(创建型)

本文详细介绍了建造者设计模式,这是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离,便于创建不同表示。文中阐述了其设计意图,如隐藏创建细节、提升代码可读性和可维护性,并通过构建电脑的示例加以说明。接着展示了建造者模式的结构,包括抽象建造者、具体建造者、指挥者和产品角色。还提供了 Java 实现示例,分析了其特点与好处,探讨了适用场景,包括适合与不适合的情况,并通过风控请求类的实战示例展示了其优势。最后,提出了结合责任链与建造者构建不同风险场景组合的思考方向。

庄小焱 1327

【设计模式】建造者模式

建造者模式(Builder Pattern) 是将一个复杂对象的构建过程与它的表示分离, 使得同样的构建过程可以创建不同的表示,属于创建型模式。使用建造者模式对于用户而言只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解。 建造者模式适用于创建对象需要很多步骤,但是步骤的顺序不一定固定。如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进行分离。 建造者模式的设计...

通往神秘的道路的专栏 1417

设计模式之——建造者模式

设计模式: 前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定。而是一套用来提高代码可复用性、可维护性、可读性、稳健性、以及安全性的解决方案 设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。 正确使用设计模式具有以下优点: 可以提高程序员的思维能力、编程能力和设计能力。 使程序设计更加标准化、代码编制更加I程化,使软件开发效率大大提高,从而缩短软件的开发周期。 使设计的代码可重用性高、可读性强、可靠性高、灵活性.

技匠而已 1万+
上一篇: 设计模式之单例模式
下一篇: 设计模式之原型模式
Scofield-
博客等级 码龄14年 12粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值