当一个类的参数过多,并且大部分时候这些参数都是可选参数的时候,我们就会考虑使用建造者模式
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 + ")"; } } }
标签:return,String,建造,模式,CaseBuilder,lombok,desc,public,name From: https://www.cnblogs.com/kun1790051360/p/18436262