创造者模式缩写复杂对象构建过程
1.背景:对象属性一个个set,代码冗余
2.创造者模式介绍:将一个复杂对象的构建与表示形式分离,使得同样的创建过程可以创建不同的表现形式
例子:kfc套餐,A+B,A+B+C提供给用户的只是套餐这个实例对象,组合的具体过程隐藏
3.优点:lombok是在编译器完成的代码生成,不需要在运行期通过反射动态生成,节省jvm资源
4.应用:lombok @Builder
import lombok.Builder;
@Builder
public class BuilderExample{
private String code;
private String msg;
}
使用方式:BuilderExample.builder().code(“A00000”).msg(“成功”).build();
lombok自动生成代码
class BuilderExample{
private String code;
private String msg;
BuilderExample(String code,String msg){
this.code=code;
this.msg=msg;
}
public static BuilderExampleBuilder builder(){
return new BuilderExampleBuilder();
}
public static class BuilderExampleBuilder {
private String code;
private String msg;
BuilderExampleBuilder(){}
public BuilderExampleBuilder code(String code){
this.code=code;
return this;
}
public BuilderExampleBuilder msg(String msg){
this.msg=msg;
return this;
}
public BuilderExampleBuilder build(){
return new BuilderExample(name,msg);
}
}
}
5.实现
1.外部类,生成无参构造方法,生成全参构造方法
2.生成一个静态内部类
3.在内部类生成和外部类相同的属性名
4.builder方法,返回一个静态内部类的对象
5.参数方法:内部类方法名就是参数名,返回值是内部类,this.x=x; return this;
6.build方法,在内部类调用外部类的全参构造函数,得到一个外部类对象,所有属性构造完成