- 重叠构造器(telescoping constructor)模式 —— 代码复杂,阅读困难
示例代码:
// Telescoping constructor pattern - does not scale well! public class NutritionFacts { private final int servingSize; // (ml) required private final int servings; // (per container) required private final int calories; // optional private final int fat; // (g) optional private final int sodium; // (mg) optional private final int carbohydrate; // (g) optional public NutritionFacts(int servingSize, int servings) { this(servingSize, servings, 0); } public NutritionFacts(int servingSize, int servings, int calories) { this(servingSize, servings, calories, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat) { this(servingSize, servings, calories, fat, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium) { this(servingSize, servings, calories, fat, sodium, 0); } public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { this.servingSize = servingSize; this.servings = servings; this.calories = calories; this.fat = fat; this.sodium = sodium; this.carbohydrate = carbohydrate; } }
public class Client { public static void main(String[] args) { NutritionFacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27); } }
- JavaBean模式 —— 线程不安全,类可变
示例代码:
// JavaBean Pattern - allows inconsistency, mandates mutability public class NutritionFacts { // Parameters initialized to default values (if any) private int servingSize = -1; // Required; no default value private int servings = -1; private int calories = 0; private int fat = 0; private int sodium = 0; private int carbohydrate = 0; public NutritionFacts() { } // Setters public void setServingSize(int servingSize) { this.servingSize = servingSize; } public void setServings(int servings) { this.servings = servings; } public void setCalories(int calories) { this.calories = calories; } public void setFat(int fat) { this.fat = fat; } public void setSodium(int sodium) { this.sodium = sodium; } public void setCarbohydrate(int carbohydrate) { this.carbohydrate = carbohydrate; } }
public class Client { public static void main(String[] args) { NutritionFacts cocaCola = new NutritionFacts(); cocaCola.setServingSize(240); cocaCola.setServings(8); cocaCola.setCalories(100); cocaCola.setSodium(35); cocaCola.setCarbohydrate(27); } }
- 构建器模式 —— 适应多参数,安全,方便编写,可维护性高,开销大
示例代码:
public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int carbohydrate; public static class Builder { // Required parameters private final int servingSize; private final int servings; // Optional parameters - initialized to default values private int calories = 0; private int fat = 0; private int carbohydrate = 0; private int sodium = 0; public Builder(int servingSize,int servings) { this.servingSize = servingSize; this.servings = servings; } public Builder calories(int val) { calories = val; return this; } public Builder fat(int val) { fat = val; return this; } public Builder carbohydrate(int val) { carbohydrate = val; return this; } public Builder sodium(int val) { sodium = val; return this; } public NutritionFacts build() { return new NutritionFacts(this); } } private NutritionFacts(Builder builder) { servingSize = builder.servingSize; servings = builder.servings; calories = builder.calories; fat = builder.fat; sodium = builder.sodium; carbohydrate = builder.carbohydrate; //对象域抛出异常 if(this.fat>this.sodium){ throw new IllegalArgumentException("The fat must be little than sodium!!"); } } }
public class Client { public static void main(String[] args) { NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35).carbohydrate(27).build(); } }
相关推荐
标题 "EJ1+CP1H无协议(Modbus-RTU)读PV写SP.rar" 暗示了这是一个关于使用Modbus-RTU协议与EJ1和CP1H系列PLC进行通信的教程或示例代码集合。描述中的 "MODBUS RTU通讯程序,通用串行口读写程序" 确认了这一点,说明...
适合前后端分离的页码生成器
三菱FX5U ST语言螺丝机程序集:标准模板,功能丰富,结构清晰,含威纶通触摸屏程序,高学习价值,三菱FX5U ST语言螺丝机程序合集:含触摸屏与功能块注释的学习范例,三菱FX5U ST语言 螺丝机程序(含威纶通触摸屏程序),全ST语言编写,标准模版, 程序包含轴FB,气缸FB等多种功能块,结构清晰,注释详细, 具体很高的学习价值和参考价值。 ,三菱FX5U; ST语言; 螺丝机程序; 威纶通触摸屏程序; 轴FB; 气缸FB; 结构清晰; 注释详细。,三菱FX5U ST语言编程宝典:螺丝机标准模版程序
项目使用Flutter进行开发,同时支持Andriod与iOS。 支持财经新闻阅读、实时大盘指数、实时沪深行情、k线查看、登录、网页查看、侧边栏、系統分享、微信分享等功能.zip项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。
基于TensorRT和YOLOv5算法的智能监控平台:多线程并行处理,视频监控与录像回放,支持多种功能部署,基于TensorRT和YOLOv5算法的智能监控平台:多线程并行处理,视频监控与录像回放一体化管理,tensorrt yolov5 QT 智能监控平台。 yolov5使用 tensorrt推理封装成dll,支持多线程多任务,可同时并行加载不同模型,同时检测。 Qt开发的监控平台,支持不同平台部署,视频监控,录像回放,电子地图,日志和系统设置应有尽有。 视觉监控,同时加载16路视频,同时并行检测任务,可网络流可本地视频。 ,关键词:tensorrt;yolov5;多线程多任务;QT智能监控平台;视频监控;录像回放;电子地图;并行检测;网络流;本地视频。 关键词之间用分号分隔,即:tensorrt; yolov5; 多线程多任务; QT智能监控平台; 视频监控; 录像回放; 电子地图; 并行检测; 网络流; 本地视频。,TensorRT加速Yolov5智能监控平台:多线程多任务并行处理,跨平台视频监控系统
基于MATLAB的单容水箱水位模糊控制系统设计与仿真报告(含详细说明书及调试讲解),基于MATLAB的单容水箱水位模糊控制系统设计与仿真报告(含详细说明书及系统建模、模糊规则设定等),基于MATLAB水箱水位模糊控制系统设计 matlab设计单容水箱,有仿真设计图+设计思路 有模糊设计面板 3个规则,带说明书[旺柴] 比较简单,能够出现跟随曲线 不 不,可讲解调试 7.5程序带简单说明书 15程序带详细说明书(系统建模+模糊规则设定+仿真分析)报告3k字 ,MATLAB; 水箱水位; 模糊控制系统设计; 仿真设计图; 设计思路; 模糊设计面板; 规则; 说明书; 跟随曲线; 系统建模; 仿真分析报告。,基于MATLAB的模糊控制系统设计:单容水箱水位管理新方案
超火的开心锤锤动态表情包小程序源码_自动采集_免服务器和域名 这款小程序里面的表情包人物的都是开心锤锤里面的人物 表情包是采集的!所以无需考虑表情包的问题 另外这款小程序是免服务器和域名的,所以运营成本是很低的 安装方法: 使用微信开发者工具打开改源码 然后设置合法域名(合法域名在压缩包里面) 然后上传提交审核就可以了
电机工程学报论文模板
项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。
内容概要:本文档旨在建立和完善IT服务管理体系下的运维服务报告机制,详细描述了服务报告的管理和操作流程,明确了报告的目的、适用范围、职责分工和具体的工作步骤。文章首先概述了制定运维服务报告的目的——提供及时准确的数据以支持决策。随后,定义了报告的责任部门(主要为运维部),并且明确了不同类型报告(反应性报告、前置性报告、预先计划报告)的特点及其编制和发送规则。此外,还强调了关键绩效指标(KPIs)和服务报告的质量保证流程。最后,阐述了关于服务报告规划、变 更及年度评审的相关规定。 适合人群:企业运维团队成员、IT管理人员及其他相关领域的专业人士。 使用场景及目标:主要用于帮助企业在日常运营和技术维护活动中提高透明度和效率,确保与利益相关者的良好沟通和决策依据的可靠性;同时有助于推动服务质量的不断优化和改进。 阅读建议:建议关注报告类别和处理流程章节,以便更好地理解和运用此文档来提升自身的服务水平和支持能力。此外还需重视KPIs监控部分以衡量实际工作成效并对潜在风险予以警惕和防范措施部署。
项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。
人形机器人的软硬件项目立项书
Screenshot_2025-02-26-22-07-28-762_com.tencent.mm.jpg
Apache:Apache的安装与配置:6. Apache与域名绑定及SSL加密配置.pdf
基于粒子群优化算法的学习率及隐藏层参数调整堆叠自编码器用于数据回归预测(Matlab实现),基于粒子群优化堆叠自编码器(PSO-SAE)的数据回归预测算法参数优化与实现——学习率、隐藏层节点及最大训练次数调整,基于粒子群优化堆叠自编码器(PSO-SAE)的数据回归预测 优化参数为学习率,隐藏层节点个数,最大训练次数 matlab代码 ,核心关键词:PSO-SAE;数据回归预测;优化参数;学习率;隐藏层节点个数;最大训练次数;Matlab代码;粒子群优化;堆叠自编码器。,基于PSO-SAE算法的参数优化与数据回归预测的Matlab实现
基于Matlab语言实现的设计项目 2、适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计中的部分功能,作为“参考资料”使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。
基于ncnn部署yolov5s(7.0)手势检测模型的安卓demo,支持hagrid数据集18类手势识别.zip(毕设&课设&实训&大作业&竞赛&项目)项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。
回归实战-新冠病毒感染人数预测(四)
基于非线性PID控制策略的Buck-Boost变换器电路设计及仿真波形展示,基于非线性PID控制的Buck-Boost变换器动态响应优化及电路应用探究,buck-boost变器的非线性PID控制,主电路也可以成别的电路。 在经典PID中引入了两个TD非线性跟踪微分器,构成了非线性PID控制器。 当TD的输入为方波时,TD的输出,跟踪方波信号也没有超调,仿真波形如下所示。 输入电压为20V,设置输出参考电压为10V,在非线性PID的控制下,输出很快为10V,且没有超调。 当加减载时,输出电压也一直为10V。 整个仿真全部采用模块搭建,没有用到S-Function。 ,buck-boost变换器; 非线性PID控制; TD非线性跟踪微分器; 方波输入; 仿真波形; 输入电压; 输出参考电压; 加载条件; 模块搭建,非线性PID控制的Buck-Boost变换器与多种电路应用研究