建造者模式与lombok

当一个类的参数过多,并且大部分时候这些参数都是可选参数的时候,我们就会考虑使用建造者模式

lombok插件中提供了Builder方法

@Data
@Builder
public class Case {
    private String name;
    private String desc;
}

编译后的case类

public class Case {
    private String name;
    private String desc;
  //1.该方法用于创建构造器,是使用建造者模式的入口
    public static CaseBuilder builder() {
        return new CaseBuilder();
    }public String getName() {
        return this.name;
    }

    public String getDesc() {
        return this.desc;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public void setDesc(final String desc) {
        this.desc = desc;
    }

  //创建了一个CaseBuilder的内部静态类
    public static class CaseBuilder {
     //目标类的所有属性
private String name; private String desc;      //一个无参的方法 CaseBuilder() { }      //每一个参数都有相应的set方法,与正常set不同的是这里会返回构造器本身用于链式调用 public CaseBuilder name(final String name) { this.name = name; return this; } public CaseBuilder desc(final String desc) { this.desc = desc; return this; }      //返回当前类,结束的标志 public Case build() { return new Case(this.name, this.desc); } public String toString() { return "Case.CaseBuilder(name=" + this.name + ", desc=" + this.desc + ")"; } } }

 

posted @ 2024-09-27 17:48  天启A  阅读(27)  评论(0)    收藏  举报