遇到多个构建器参数时要考虑使用构建器
作者:互联网
- 重叠构造器模式
代码臃肿,且使用时,会出现无用的参数也必须要传递的情况。
2.JavaBean模式
- 是对1的改良,出现的问题是创建过程分步骤了,无法通过构造器参数的有效性来保持一致。比如要联动校验年龄和工龄的关系
- 还说set方法降低了安全性,随意set就降低了安全性吗,主要还是随意的给字段加set就已经不合理。但是实际都会默认加上。所以可以暂不考虑该缺点。
3.建造者模式
- 缺点是又另外创建了一个类带来了额外开销,所以在性能要求高的场景中不要使用。
- 另外参数不多的场景中也不要使用,一般适用于4个参数以上。
- 可以使用lombok的@builder快捷使用该模式,但是使用该注解会私有化构造方法,在JSON转化时,需要创建实例时会报错提示没有构造方法。结合@Singular可以把list类型参数分批次录入
@Data
@Builder
@NoArgsConstructor
public class Example1 {
private static Example1 example1 = new Example1();
private String field1;
private String field2;
@Singular("field3")
private List<String> field3List;
public static Example1 getInstance(){
example1.setField1("test1");
example1.setField2("test2");
Example1.builder().field3("1").field3("2").build();
return example1;
}
}
标签:时要,set,field3,Example1,private,参数,example1,构建 来源: https://www.cnblogs.com/kunkka-0717/p/14424144.html