java设计模式---- 建造者模式

【Java设计模式】Java设计模式之(四)建造者模式(Builder Pattern) 一、建造者模式介绍 1.1 什么是构建者模式 创建者模式又叫建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。 1.2 适用场景: 隔离复杂对象的创建和使用,相同的方法,不同执行顺序,产生不同事件结果多个部件都可以装配到一个对象中,但产生的运行结果不相同产品类非常复杂或者产品类因为调用顺序不同而产生不同作用初始化一个对象时,参数过多,或 阅读详情
主文章(所有java设计模式的目录)
https://blog.youkuaiyun.com/grd_java/article/details/122252696
源码位置
码云:https://gitee.com/yin_zhipeng/design_mode.git
GitHub:
学习设计模式前必须知道的东西
  1. 看待设计模式,要站在更大的角度(代码重用性、可读性、可扩展性、可靠性、程序高内聚,低耦合)来综合考虑看待,而不是功能实现的角度看待,不要觉得实现一个功能没必要这么麻烦
  1. 文章中给出的设计模式类图都是标准的实现方式,并不一定要完全遵守标准,所以只要设计思想符合,一个设计模式有多种实现方式,尤其是看别人源码的时候,不要用标准类图死扣

假设我们盖房子有三步:打桩、砌墙、封顶
  1. 普通房子、高楼、别墅,各种各样的房子,虽然盖的过程差不多,但是要求都不一样
  2. 我们要将房子和建造房子的工作分开,解耦,就是建造者模式
  3. 产品和产品建造过程解耦,就是建造者模式

1. 建造者模式(Builder Pattern)

建造者模式
  1. 又叫生成器模式,一种对象构建模式。将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。
  2. 建造者模式,是一步步创建一个复杂的对象,允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节
  3. 就是同一个对象,通过不同建造者建造,让对象百花齐放,例如房子,有楼房,有别墅
  4. 如果被建造产品差异性很大,则不适合建造者模式,比如房子和汽车
建造者模式四个角色
  1. Product(产品角色):一个具体的产品对象
  2. Builder(抽象建造者):创建一个Product对象的各个部件指定的接口
  3. ConcreteBuilder(具体建造者):实现接口,构建和装配各个部件
  4. Director(指挥者):构建一个使用Builder接口的对象。它主要是用于创建一个复杂的对象。两个主要作用,一:隔离客户与对象的生产过程,二:负责控制产品对象的生产过程
类图:com/yzpnb/design_mode/builder_pattern/UML/builderPattern.puml

在这里插入图片描述

1. 使用建造者模式模拟建房子

以造房子举例,类图:com/yzpnb/design_mode/builder_pattern/UML/BuildingHouse.puml

在这里插入图片描述

代码:com/yzpnb/design_mode/builder_pattern/building_house包下
  1. Product产品角色,House,需要被建造的对象
    在这里插入图片描述
  2. Builder(抽象建造者),HouseBuilder抽象类,规定建造流程,让子类建造,然后我们只负责交工
    在这里插入图片描述
  3. 具体建造者,普通房子建造,CommonHouse
    在这里插入图片描述
  4. 具体建造者,高楼建造,HighBuilding
    在这里插入图片描述
  5. 指挥者,指挥盖房子,需要用户指定盖什么样的房子。HouseDirector
    在这里插入图片描述
  6. Client,客户,找到指挥者,指定盖什么房子,然后通知指挥者开始盖,最后拿到House
    在这里插入图片描述

2. 用到建造者模式的源码

JDK的StringBuilder用到了建造者模式,java.lang.StringBuilder
  1. 首先:设计模式的标准,是在JDK之后提出的,设计模式是一种思想,我们前面介绍的建造者模式是后来的一种标准,只要实现了思想,实现方式其实是没有一个固定的标准的
  2. 测试代码和类图:com/yzpnb/design_mode/builder_pattern/source_analysis包下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
Python对接海康威视机器视觉工业相机 工业相机只允许单条连接,也就是说MVS如果连接了相机,python代码就无法获取数据,此时必须。相机工具类(读者直接复制)HKCamera_class.py。博主这里出现了一个警告:获取不到相机参数。四、使用Pycharm打开Python代码示例文件夹。三、找到MVS示例代码(代码在MVS的安装位置)二、解压并安装MVS客户端。一、下载MVS客户端。安装一下opencv。 阅读详情

相关推荐

视频生成工具本地部署完全指南:Seedance能装吗?有哪些开源替代?

本文系统介绍了视频生成模型的本地部署方案,分为三个部分:1)Seedance 2.0的混合部署模式,其开源组件可本地集成但核心功能需调用API;2)完全开源替代方案对比,包括LTX-2、Wan 2.1等模型的硬件需求与特点;3)详细部署指南,以ComfyUI+Wan 2.1为例,涵盖软件准备、模型整合、参数调优等步骤,并提供了显存优化和多GPU配置技巧。文章为需要离线视频生成能力的用户提供了完整技术路径。

小明的博客 1万+

java设计模式之建造者模式

今天我们来谈一下java设计模式中的建造者模式,首先我们先看一下建造者模式的正式定义 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景: 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2、当构造过程必须允许被构造的对象有不同的表示时。 那建造者模式到底是什么意思呢,按照惯

java技术交流 683

UE5 GAS实战:从零构建一个MOBA英雄技能系统

本文详细介绍了如何利用UE5的Gameplay Ability System(GAS)构建MOBA英雄技能系统,涵盖核心组件如Ability System Component和GameplayEffect的使用,以及技能冷却、资源管理和连招系统等高级功能的实现。通过实战案例和代码示例,帮助开发者快速掌握GAS在MOBA游戏开发中的应用。

weixin_29012765的博客 527

【Java 设计模式 · 创建型】建造者模式(Builder Pattern)

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

茶色喵的博客 919

Fiddler抓包实战:5分钟搞定微信公众号历史消息接口分析(附完整Python代码)

本文详细介绍了如何使用Fiddler抓包工具逆向分析微信公众号历史消息接口,并提供完整的Python代码实现。从环境准备、动态参数捕获到商业级采集系统架构设计,全面解析了突破官方接口限制的技术方案,帮助开发者高效获取公众号文章数据。

tree8的博客 329

10位PWM能否满足电梯±5mm平层精度?4位扩展法让10位PWM达到14位精度

电梯平层精度直接关系乘坐舒适性与安全性,而PWM分辨率是决定精度的关键因素之一。10位PWM能否满足±5mm的平层精度要求?本文从分辨率与物理量的对应关系出发,结合工程精度需求与实战对比,给出明确的选型结论与解决方案,请参考优快云博客《4位扩展法:基于ATtiny816的高精度PWM软件扩展方法》和《低成本高精度PWM:4位扩展法原理、实现和工程实践》。10位PWM的分辨率为 $2^{10} = 1024$ 级。

m0_73354873的博客 244

Java 设计模式——建造者模式(Builder Pattern)

Java 设计模式——建造者模式(Builder Pattern) 一.简介 1.定义 将一个复杂对象的构建与它表示分离,使用同样的构建过程可以创建不同的表示 2.主要作用 在用户不知道对象建造过程和细节的情况下就可以直接创建复杂对象 3.如何使用 用户只需给出指定复杂对象的类型和内容,建造者模式负责按顺序创造对象(把内部建造过程和细节隐藏起来) 4.解决的问题 (1).方便用户创建复杂的对...

a158s168的博客 277

【科普知识】什么是驱控一体化伺服电机?

驱控一体化伺服电机以其高度的集成性、兼容性、便捷性以及卓越的性能表现,成为了现代工业自动化领域的一颗璀璨明珠。对于那些追求高效、精准、智能控制的行业用户而言,它无疑是一种理想的选择。

m0_46512607的博客 3151

Java设计模式|建造者模式Builder Pattern

Java设计模式|建造者模式Builder Pattern 前言: 在日常生活中,我们可能会遇到这一类型的需求,例如一个实体类里有很多个属性,但是我们只想要其中的几种组合成一个新的对象,这个时候就可以使用建造者模式了,它提供了一种创建对象的最佳方式。建造者模式虽然比较好用,但是大家平时写代码的时候要谨记,不要滥用设计模式,不然的话可能会适得其反啊! 建造者模式 介绍:建造者模式又被称呼为生成器模式,这种类型的设计模式属于创建型模式,使用多个简单的对象一步一步构建成一个复杂的对象,将一个复杂对象的构建与它

QAQFyl的博客 547

【滚雪球学数学建模】第1节·建模入门+三步法+案例

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 6413

深度测评:Accio Work——目前普通用户最友好的多 Agent 协同工具

摘要:Accio Work是阿里国际站推出的多Agent协同工具,通过借鉴古代"三省六部制"构建高效协作框架。该工具支持主流大模型,可配置专业Agent角色,实现40分钟内完成复杂产品PRD等高效协作。其亮点在于直观的UI设计和流程驱动机制,能强制各Agent从专业视角深度思考。虽然超长对话稳定性有待优化,但作为目前最用户友好的多Agent工具,显著降低了构建复杂AI团队的门槛,成为提升个人和小微企业生产力的利器。

Maynor的博客 1737

【设计模式】Java 设计模式之建造者模式(Builder Pattern)

建造者模式是一种强大的设计模式,它通过抽象化对象的构建过程,提高了代码的可读性、可维护性和可扩展性。该模式适用于需要创建复杂对象且创建过程需要灵活调整的场景。通过定义建造者接口和指挥者类,我们可以将对象的构建逻辑与使用逻辑分离,使得代码更加清晰和易于维护。此外,建造者模式还支持创建多种表示的产品,增强了系统的灵活性。在实际应用中,我们可以根据需求选择合适的建造者模式变种和扩展应用方式,如带有默认值的建造者或链式调用的建造者。未来,随着软件系统的复杂度增加,建造者模式的应用将更加广泛,我们需关注其性能问题和设

新手村长的专栏 4595

让 ABAP 开发者也能做出高质量 SAP Fiori:到底需要掌握多少前端知识?

文章摘要: 随着SAP技术演进,ABAP开发者的角色边界正在重构。传统SAP GUI时代的全栈开发模式逐渐转向RAP+Fiori Elements的新范式,其中关键技术变化包括: 开发模式转变:从前后端耦合转向RAP模型驱动开发,通过CDS注解实现UI意图表达 分工优化:Fiori Elements模板处理80%标准UI需求,Flexible Programming Model解决20%差异化需求 效率提升:注解驱动开发可在RAP建模阶段同步定义UI结构,大幅缩短交付周期 工具整合:SAP提供从建模到部署的

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 350

java设计模式之建造者模式(Builder Pattern)

java设计模式之建造者模式(Builder Pattern) 将一个复杂对象的构建与它的表示分离,使得同样的构建可以创建不同的表示。摘自《大话设计模式》。 简单实现 我们这里定义一个产品类(Product)和部分接口(每个部件Part)。这里我们模仿一个早餐得各种套餐,而每种套餐都包括一个主食和饮品,而一个完整的产品是由各个部分组成,其中定义了一个add()方法,让这个完整的产品自由的添加相应得部分。 一个套餐就是一种产品。 /** * @Description 每个部分 * @Author liji

qq_41496513的博客 218

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java设计模式 五 建造者模式 (Builder Pattern)

产品是需要构建的复杂对象,由多个部分组成。

空 975

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

设计模式(Design Pattern) - 创建型模式(Creational Pattern) - 建造者模式(Builder) - Java实现

设计模式(Design Pattern) - 创建型模式(Creational Pattern) - 建造者模式(Builder) 将一个复杂的构建算法和表示分离,导致同样的构建过程可以建造不同的表示。

Z 509

visio安装包

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

JAVA 二十三种设计模式大全(十四)建造者模式(Builder Pattern)

文章目录概念介绍代码@Builder:自己写一个类似的 概念 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 介绍 **意图:**将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 **主要解决:**主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象

自救 唯有自强 293

Java设计模式--建造者模式【Builder Pattern】

昨晚回到家里,我爸爸气冲冲地跟我诉苦,“哎!,干个装修容易么?顾客啥都不懂,还非得规定装修顺序,要先贴地板砖后刷墙,到时候贴好的地砖上全是泥,哪有这么干活的?”老爸干了一辈子的装修,一切事宜由他全权负责,难免心力憔悴。但是,我仔细想了下这个事情,如果老爸签订了一个公司,公司负责接活揽活,规定装修要求,老爸只负责执行,那不就轻松了吗?于是我就想起了建造者模式。       建造者模式的定义是:将一

CoderLover 481

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

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

Fatter$hday的博客 1609

java建造者模式理解_java_理解java设计模式之建造者模式,建造者模式(Builder Pattern)主要 - phpStudy...

理解java设计模式之建造者模式建造者模式(Builder Pattern)主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。因此, 建造者模式主要用来解决“对象部分”的需求变化。 这样可以对对象构造的过程进行更加精细的控制。package com.shejimoshi.create.Builder;/*** 功能:意图是将一个复杂对象的构建...

weixin_29870587的博客 154

Java设计模式:建造者模式

Java设计模式:建造者模式

lzh804121985的博客 932

java设计模式(五)建造者模式(Builder Pattern)

建造者模式(Builder Pattern)的介绍、应用场景、优缺点以及代码实现。

weixin_70044963的博客 436

Java与设计模式(6):建造者模式

建造者模式(Builder Pattern)是一种创建型设计模式,它允许你逐步构造复杂对象。该模式将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的核心思想是将一个复杂对象的构建过程分解为多个简单的步骤,通过一系列的步骤来逐步构建对象,最终产生一个完整的对象。这种分步构建的方式使得对象的构建过程更加灵活,同时可以隐藏对象的创建细节。建造者模式通常包含以下几个角色:产品(Product):表示最终构建的复杂对象。

暗星涌动 1349
上一篇: java设计模式----原型模式,深拷贝,浅拷贝,序列化,反序列化
下一篇: java设计模式---- 适配器模式,手写SpringMVC适配器设计模式
ydenergy_殷志鹏
博客等级 码龄7年 5886粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

ydenergy_殷志鹏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值