关于多个构造器参数时考虑构建器
一个类的构造器,有20个参数,甚至更多,我想这对程序员绝对是一个噩梦。而且我们很可能不使用里面的所有属性,许多熟
属性也有默认值。 里面提供了用Bean和构建器来解决的方法。
我个人一直使用Bean的方法,原因很简单,Spring会替我做。
至于构建器,这个东西我看了看,个人认为看上去很好,但实用性不是很高。
首先,那么多参数的构造器,本身就是设计失误,不是靠技术能解决的。
其次,里面提到的用Bean方式的可能出现数据状态不一致的情况,我同样认为是设计问题,我想不出在什么情况下会出现这个问题。
我的Bean肯定是一个本地变量,当然只有我自己用,简单的set也会有不一致状态的情况?那些要设置的参数,应该事先准备好
,如果不一致,应该去检查你获取数据的部分,而不是让Bean来负责。
后面提供的解决这个问题的build的方法,看上去确实不错,可惜我想我可能用不到了。
记着有这个东西,也许哪天真的需要了,别忘了有就行了。
相关推荐
OpenHarmony 5.1 RK3568 开发板烧录:从源码编译到镜像写入的 6 步实战
本文详细解析了OpenHarmony 5.1在RK3568开发板上的全链路开发流程,包括环境搭建、源码编译、镜像烧录等6个关键步骤。通过实战指南和避坑技巧,帮助开发者快速掌握OpenHarmony系统的烧录与定制能力,提升物联网设备开发效率。
《Effective Java》中文第二版已读完,不得不赞一个!
说明:本人所有博客文章,以及《effective Java》都已经上传到 Wiz 为知 云笔记平台上了,有需要的朋友请前去寻找,具体地址: http://mywiz.cn/view/20130622180659226 今天终于将《effective java》第二版啃完了,感觉确实不错,值得一看。看的时候结合自己做过的项目想一下确实如些,里面有绝大多数都是很好的建议与总结,而且都是站在...
XR Interaction Toolkit实战:为HTC Vive Cosmos打造抓取、投掷与UI交互(Unity 2023教程)
本文详细介绍了如何使用Unity 2023和XR Interaction Toolkit为HTC Vive Cosmos开发抓取、投掷与UI交互系统。通过实战案例'VR投掷训练室',从基础配置到高级功能实现,涵盖物理抓取、精准投掷机制和VR UI交互设计,帮助开发者提升VR交互开发技能。
Effective Java第二版 读后感
虽说是读后感,其实我并没有完全读完这本书,中间有些不懂的章节和最后的两章(并发和序列化)是没有看完的,以目前的实力来看,实在看的云里雾里,就决定先放着,看看编程思想后再回头看看。写这篇感想一是为了记录一些东西,方便以后的复习;二是为还没有读过这本书的人提供一个参考,但也仅仅是一个参考而不是一个标准哦。 总的感想 1.注意版本。 买书之前,没有确认版本,结果到的时候才发现第二版的书是09年印刷版,内...
用Java实现森林冰火人游戏
g.drawString("游戏结束", CELL_SIZE * COLS / 2 - 100, CELL_SIZE * ROWS / 2);g.drawString("难度级别: " + difficultyLevel, 10, CELL_SIZE * ROWS + 60);g.drawString("生命值: " + playerHealth, 10, CELL_SIZE * ROWS + 20);setTitle("森林冰火人");
Unity 第一人称视角控制移动、旋转
第一人称视角操作此功能主要是借鉴YouTube,写的蛮好我就搬运过来让大家也试试。
用枚举增强单例模式的可靠性 - Effective Java 中文版第二版的读书心得(三)
我们常用的构造单例模式(Singleton)的方法,一般有2种1 提供一个静态的公共属性2 提供一个静态的公共方法这2个方法,都是采用了私有的构造器来防止外部直接构造实例。 但我们可以用反射的方法,获得多个实例。后面我会给出测试的代码。从1.5开始,枚举也可以用来获得单例,而且更加可靠。同时又自动提供了一些额外的功能。先看看测试代码:import java.l
STM32F103VET6实战:用W25Q64外部Flash实现Bootloader+Application双备份(含完整代码解析)
本文详细介绍了基于STM32F103VET6微控制器和W25Q64外部Flash实现Bootloader+Application双备份固件升级的完整方案。通过精心设计的Flash分区策略、可靠的Bootloader程序以及包含双重校验和自动回滚机制的升级流程,有效解决了远程升级过程中断电导致设备变砖的风险,确保了工业嵌入式系统的高可靠性与稳定性。
Effective Java读书笔记完结啦
Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. Background 看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了. 做这个笔记的目的主要是为了个人学习, 把一本...
七、永磁同步电机矢量控制(FOC)—MTPA控制及Simulink仿真
前面几节的内容已经完成Id=0控制策略的理论和仿真以及双闭环PI参数整定。在接下来几节中,将陆续讲解MTPA、弱磁控制等内容。
单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)
亚细胞分群从T/NK至CD4+T细胞
Effective Java 中文版第二版的读书心得(一)
虽然只看到了不到100页,但收获还是很多的。首选很感谢Joshua Bloch写的这本书,当然更感谢我们的司令翻译。至少目前我看到的100页的内容,基本没发现翻译很别扭的地方,包括错别字也没有发现,至少没有影响到我对书中内容的理解。再次感谢。在后面的读书心得里,我会根据我的个人理解,将书中的各个知识点逐个和大家分享。 书中的一些观点我也不是完全赞同的,呵呵(估计是我的水平不够,呵呵呵)。我们先看
Codex入门00-初识神器(小白入门:到底什么是Codex CLI,和ChatGPT写代码有什么不同?)
OpenAI Codex CLI 是 OpenAI 于2025年推出的终端原生AI编程代理,不是在网页里聊天写代码,而是直接在你的终端里自主读代码、改文件、跑命令。它拥有三种安全模式、/goal 持久化任务、云端沙箱执行等独特能力。本文从零介绍 Codex CLI 的核心概念、与 ChatGPT 写代码的本质区别、典型使用场景和费用说明,让你全面认识这个改变开发方式的神器。
Effective Java读书笔记
Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. Background 看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了. 做这个笔记的目的主要是为了个人学习, 把一本书...
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
《Effective Java中文版》第二版 读书笔记
《Effective java》第二版基于Jdk1.5,虽然现在最新的jdk是jdk10,但书中内容主要介绍的是Java的一些编程规范、java编程思想,所以依然值得大家去读,可供大家学习的地方还很多。以下是自己对这本书的一些总结,由于篇幅原因,只做简单介绍,让大家知道有这么一个概念。 正如书的引言所说,本书的目的是帮助读者最有效地使用Java程序设计语言及其基本类库:java.l...
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
《Effective java》第二版阅读笔记
18.接口优于抽象类 接口和抽象类都是java中定义类型、扩展功能的机制。 两者主要区别在于接口中全部是抽象方法,抽象类中可以包含抽象方法,也可以包含非抽象方法。 而接口优于抽象类的原因是,类可以实现多个接口,但只能继承一个抽象类,抽象类的使用受限。 假使对一个类进行扩展功能,可在implements后新增接口实现,如Comparable引进到java中后,更新了许多现有类。同时接口也是mixin...
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
Effective java第二版读书笔记
下面对Effective java第二版中的技术点进行总结 技巧 优点 缺点及注意事项 用静态工厂方法代替构造器 有名称, 不必在每次调用时都创建一个新对象,可返回原返回类型的任何子类型对象,创建参数化实例时,代码更简洁 若类不含有公有或受保护的构造器,不能被子类化,它们与其他静态方法实际上没有任何区别 多个构造器参数时考虑用构造器 Builder模式,利用所有必要的参
Effective Java 读书笔记
Effective Java 读书笔记
《Effective Java》中文版第3版 读书笔记
人真的不必逼自己去做不像自己的那种人,强大固然是好,但脆弱和柔软也没有什么过错。一个人不用活得像一支队伍,一个人只要活得像一个人就行了,有尊严,有追求,有梦想,也有软弱和颓废的时候。 -- 知乎
《Effective Java中文版第二版》读书笔记
说明 这里是阅读《Effective Java中文版第二版》的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出。一些个人还不理解的会用斜线标注。 第一章是引言,所以跳过。 第二章 创建和销毁对象 第1条:考虑用静态工厂方法代替构造器 含义 静态工厂方法是指一个返回类的实例的静态方法,例如: public static ...
《Effective Java》读书笔记
优先使用接口、泛型、静态工具类...
【effective java读书笔记】通用程序设计(二)
前言 以前曾经做ERP时,总是遇到尾差尾数的问题。比如:库存一箱苹果10元钱,假如一共3个苹果。拿走两个还剩多少钱。好了,言归正传,回到今天的读书笔记,精度问题。 第47条了解和使用类库 第48条如果需要精确的答案避免使用double和float 第49条基本类型优先于装箱基本类型
《Thinking In Java》 VS 《Effective Java》 VS 《深入理解Java虚拟机》
今天刚考完试,在5天以前的前4个月时间里,我很庆幸自己选了一个看书的学习途径。从上个学期的暑假到现学期的11周里面,读了《Thinking In Java》、《深入理解Java虚拟机》和《Effective Java》,感悟颇多。首先先说明一下,我以前是看视频学习的,就做过两三个学校的网站,都已经上线在使用。没做过什么特别高大上的东西,所以我是处在新手的角度去读书的,我也知道自己的理解很浅,不
【读书笔记】《Effective Java》第二章 第2条:遇到多个构造器参数时要考虑使用Builder
一、前言 《Effective Java》读书笔记系列 第二章 第1条:创建和销毁对象 二、介绍 我们开发中偶尔会遇到一些需要设置10个或以上大量参数的情况,通常情况有几种处理方式:多构造函数、setter、Builder模式。 1、多构造函数:这种方式虽然最方便,但也最繁琐,假设有一个方法需要设置6个int型的参数,但多数情况下,这6个中总有你不想传的参数,但这时候就需要约定一个规则:例如传0,但是传0又会有一个问题就是传入顺序问题,传入顺序不同并不会导致程序编译不通过,却会导致程序运行结果不正确。所
Effective Java 2nd 读书笔记(思维导图)
自己整理的 Effective Java 第二版的知识点,做成了思维导图,Xmind编辑的。
343



被折叠的 条评论
为什么被折叠?



