建造者-创建型设计模式

news/2025/11/19 16:46:22/文章来源:https://www.cnblogs.com/LuckyOx/p/19243186

建造者模式是一种创建型设计模式,用于解决对象的创建问题
现在有一个问题 如果一个对象有很多的属性,其中很多属性非必要,那我们怎么样优雅的创建这个对象?
那我们容易想到构造方法创建,但是由于很多属性是非必要的,所以我们要去书写非常多的构造方法,方法的数量是随着非必要属性的数量增加而指数级上升的,通过构造方法来实现不大现实,那如果我们通过setter方法创建的话,又不太优雅和容易漏字段,建造者模式就是用来处理这个问题的
建造者模式的核心思想就是将复杂对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示
说人话就是我们定义类时需要去内部定义一个静态建造者类,建造者类的字段和其外部类一样,然后必要字段必须在建造者构造时提供
public XXBuilder(String s) {
this.s = s;
}
非必要的就通过this实现链式调用
public XXBuilder t(String t) {
this.t =t;
return this; // 返回自己,才能继续调用其他方法
}
最后实现我们的构造方法
public XX build() {
// 这里可以检查参数是否合法
if (s== null) {
throw new IllegalArgumentException("s不能为null!");
}
return new XX(this); // 调用XX的私有构造器
}
最后我们可以使用@Builder来实现自动化建造者相关代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/970165.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:FFmpeg 核心 API 系列:音频重采样 SwrContext 完全指南(新API版本)

深入解析:FFmpeg 核心 API 系列:音频重采样 SwrContext 完全指南(新API版本)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

http和https区别如何转https - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

和利时MACSV6.5.4 ,Autothink下装失败,工程总控下装失败

1,和利时MACSV6.5.4 ,Autothink下装失败,显示 应答错误。。我在网上找过很多方法都不见效。自己折腾了半天搞出了一个方法。 一般来说这种问题经常出现在新的客户端安装MACS后使用恢复的工程文件时这种情况下。所以,…

agc050e 题解

虽然AT评的是问号题,但并不是特别难。设 \[f(x_1,y_1,x_2,y_2,x_3,y_3)=\sum_{x=0}^{y_1y_2y_3}\prod_{i=1}^3 [\bmod y_i\le x_i] \]题目要求的就是 \(f(g_1-1,r_1+g_1,g_2-1,g_2+r_2,g_3-1,g_3+r_3)\) 。 考虑如何求…

阿里云可观测 2025 年 10 月产品动态

本月可观测热文回顾 文章一览: 用户说“App 卡死了”,你却查不到原因?可能是监控方式错了 清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践 告别手动埋点!Android 无侵入式数据采集方案深度解析…

linux ext4 文件系统

在 Linux 系统中,ext4 是一种广泛使用的文件系统格式,主要用于 UFS2(Unix File System 2)的扩展。它提供了比早期的 ext2 和 ext3 更好的性能、可靠性和功能。一、ext4 文件系统的特点特性 描述文件系统类型 ext4(…

linux exit(-1)

在 Linux 中,exit(-1) 是一个常见的命令,用于终止当前的程序或脚本。它的作用是:返回状态码:exit(-1) 会返回状态码 -1,表示程序执行失败。 终止程序:程序会立即终止,不再继续执行后续代码。用途场景在脚本中,…

奶奶都能看懂的 C++ —— 左值和右值

用通俗例子讲清 C++ 左值/右值、引用与const、取址和解引用、下标、前后置自增、范围for的拷贝与引用差异,纠正常量指针示例与误区,强调左值可读写、右值多为临时结果。如果你上网搜索过一些 C++ 教程,你总会遇见两…

2025年广东家具海运到悉尼服务商权威推荐榜单:广州海运到悉尼机构/广东家具海运到墨尔本渠道/广东海运到墨尔本公司服务商精选

随着中澳贸易往来日益密切,越来越多广东地区的家庭和企业选择将家具运往悉尼。根据悉尼港务局2024年统计数据显示,中国华南地区发往悉尼的家具类货物年增长率达到17.5%,其中广东地区占比高达68.3%。本文基于实地考察…

固废智能分拣项目开发周期

目录背景和价值📅 智能分拣项目时间线预估阶段一:准备与数据基础 (0 - 3 个月)阶段二:核心功能原型开发 (3 - 6 个月)阶段三:优化、加速与稳定 (6 - 9 个月)阶段四:现场部署与业务交接 (9 - 12+ 个月)参考资料 背…

新能源充电桩EMC整改实录:阿赛姆共模电感如何实现12dB衰减

一、行业痛点:传导发射超标问题 根据2023年IEEE EMC Symposium会议论文统计,新能源设备EMC测试失败案例中,42%源于共模干扰。 典型案例 某500kW直流快充桩在CISPR 22传导测试时,150kHz-1MHz频段超标12dBμV,峰值达…

Oracle案例:迁移含有LONG字段的表

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。Oracle案例:…

AOI检测设备厂家推荐:聚焦高精度表面检测技术应用

AOI(自动光学检测)设备作为工业生产中实现表面缺陷检测与质量控制的关键工具,通过光学成像与算法分析,能够高效识别产品表面的微小瑕疵、尺寸偏差等问题,广泛应用于半导体、电子制造、汽车零部件等精密加工领域,…

微波烘干设备安全性能:核心技术与应用解析

微波烘干设备作为工业生产中的重要装备,其安全性能直接关系到生产效率与操作安全。设备运行中的微波泄漏防护、温度精准控制、过载保护等技术环节,是保障设备稳定运行的关键。近年来,随着工业自动化水平提升,市场对…

邻接链表实战反思:从一次超时错误,看透数据结构的“映射本质”

邻接链表实战反思:从一次超时错误,看透数据结构的“映射本质”在图论算法中,邻接链表(邻接表)是最常用的存储结构——它简洁高效,能快速表示节点间的连接关系。但正是这种“简洁性”,让很多开发者(包括我)陷入…

AOI光学检测设备厂家哪家好?行业实力企业推荐

AOI(自动光学检测)设备作为工业生产中质量控制的关键工具,通过光学成像与智能算法对产品表面缺陷、尺寸精度等进行高效检测,广泛应用于消费电子、汽车制造、新能源、医疗等众多领域,其技术水平直接影响生产效率与…

免费网络研讨会 | 功能安全十步走

您目前是否也正面临确保软件开发过程符合ISO 26262:2018标准的挑战?本次网络研讨会我们为您提供逐步指导。轻松十步,带您建立符合ISO 26262:2018的软件开发流程。研讨重点:✅ 功能安全项目预设及优先事项✅ 软件V模…

AOI检测设备定制厂家实力解析:工业质量监控技术方案对比

在现代工业生产中,产品质量与生产工艺的精细化监控已成为企业提升核心竞争力的关键环节。AOI(自动光学检测)设备作为非接触式质量检测的重要工具,其定制化方案能够精准适配不同行业的生产需求,通过光学成像与智能…

能提高免疫力的灵芝品牌哪家好?这份榜单值得关注

灵芝作为传统滋补品,其含有的多糖、三萜等活性成分在调节免疫功能方面的作用逐渐被科学研究关注。随着大众健康需求提升,市场上的灵芝品牌品类丰富,选择时可从品牌积淀、产品工艺、用户反馈等维度综合分析,以找到适…

AI元人文:“协议”二字的由来

AI元人文:“协议”二字的由来 ——一次人机协同的认知显影 在AI元人文的构想中,“协议”并非一个凭空创造的概念,它的浮现,本身就是一次对人机协同认知过程的完美演示。它的由来,记录了一场从混沌的直觉走向清晰结…