前言
当我们面对具有大量可选成员变量的 Java 类时,创建这些对象的最佳方法是什么?通常有三种方法: 伸缩构造函数,JavaBean模式和构建器模式。
构造函数
UserInfo userInfo1 = new UserInfo("felord.cn", 28);
UserInfo xxxxxx = new UserInfo("felord.cn", "xxxxxx", 28);
UserInfo xxxxxx1 = new UserInfo("felord.cn", "xxxxxx", 28, LocalDateTime.now());
构造函数通常需要可伸缩性,也就是参数列表需要重载。有些时候我不得不传入null进行初始化。
// 不合理的构造使用示范
UserInfo xxxxxx = new UserInfo(null, null, 28);
而且不能直观看出这些参数所代表的的含义,这有可能引发致命的错误,我们将同类型的username和address互换位置依然成功初始化了对象,不会显式的引发构建错误,这是不合理的。
IDEA 参数列表提示功能
另外如果参数列表比较长,有七八个的话,代码是非常冗长的。
难道构造函数一无是处吗,当然不是。胖哥在使用构造参数时会确保构造的参数列表不会太长,而且如果参