首页 > 其他 > 详细

使用建造者模式和Lombok简化代码

时间:2019-05-12 23:26:05      阅读:1041      评论:0      收藏:0      [点我收藏+]

在项目开发中,我们经常需要构建对象。常见的做法有getter/setter,或者构造器构建对象。
可能会有人写出类似如下的代码:

Company company=new Company();
company.setAgentId(agentId);
company.setAgentUserId(agentUserId);
company.setCompanyName( companyName );
company.setAgentUserName(agentUserName);
company.setDomain( domain );
company.setTaxNo( taxNo );
company.setCreateTime( new Date() );
company.setIsauth(1);
company.setActivationCode(activationCode);
company.setAuthCode(authCode);
company.setDomain(domain);
company.setUseType(1);
company.setContactor(phoneNumber);

也可能写了一个参数非常冗长,传参特别容易出错的构造方法。
我们可以使用Lombok和建造者模式简化代码,首先,在Company类上方加入Lombok注解,如下所示:
(注意,Lombok除了要加入依赖包,还需要配置一下。几分钟可以搞定,具体做法请百度)

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@RequiredArgsConstructor(staticName = "of")
public class Company {
    @NonNull
    private Integer agentId;
    @NonNull
    private Integer agentUserId;
    private String companyName;
    private String agentUserName;
    private String domain;
    private String taxNo;
    private Date createTime;
    private Integer isAuth;
    private String activationCode;
    private String authCode;
    private Integer userType;
    private String phoneNumber;
}

其中的注释意思如下:
@Builder:可通过Builder模式构建对象。
@NonNull:变量不能为空
@Data:包含了getter、setter、toString、equals、hashcode方法。
@NoArgsConstructor : 生成一个无参数的构造方法。
@AllArgsContructor: 会生成一个包含所有变量的构造方法。
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量 的构造方法。生成的构造方法是private,如果想要对外提供使用可以使用staticName选项生成一个static方法。

加入了@Builder后,那么可以将代码改写成如下:

   Company company=Company.builder().agentId(1).agentUserId(1).companyName("google")
                                  .agentUserName("lin").domain("test").taxNo("1111111").createTime(new Date())
                                  .isAuth(1).activationCode("0587-1235").userType(1).phoneNumber("666666666")
                                 .build();

基本形式就是: 类名.builder().build() ,在中间加入变量方法及变量的具体值。
通过这种方式构建对象,没有那么多的setter,参数也不容易出错。

参考资料:
http://kriszhang.com/lombok/

使用建造者模式和Lombok简化代码

原文:https://www.cnblogs.com/expiator/p/10854141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!