码迷,mamicode.com
首页 > 其他好文 > 详细

遇到多个构建器参数时要考虑使用构建器

时间:2021-02-22 12:23:32      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:code   缺点   报错   步骤   场景   uil   无法   builder   遇到   

  1. 重叠构造器模式

代码臃肿,且使用时,会出现无用的参数也必须要传递的情况。

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;
    }
}

遇到多个构建器参数时要考虑使用构建器

标签:code   缺点   报错   步骤   场景   uil   无法   builder   遇到   

原文地址:https://www.cnblogs.com/kunkka-0717/p/14424144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!