package create_Destroy;//创建和销毁对象
//遇到多个构造器参数时使用构建器-Builder模式
public class BuilderPattern {
private int servingSize;
private int serving;
private int calories;
private int fat;
private int sodium;
private int carbothydrate;
//内部静态类
public static class Builder{
//必选参数
private int servingSize;
private int serving;
//可选参数
private int calories=0;
private int fat=0;
private int sodium=0;
private int carbothydrate=0;
public Builder(int servingSize ,int serving){
this.serving = serving;
this.servingSize = servingSize;
}
public Builder calories(int val){
calories = val;
return this;
}
public Builder fat(int val){
fat = val;
return this;
}
public Builder sodium(int val){
sodium = val;
return this;
}
public Builder carbothydrate(int val){
carbothydrate = val;
return this;
}
//关键方法
public BuilderPattern builder(){
return new BuilderPattern(this);
}
}
private BuilderPattern(Builder builder){
servingSize=builder.servingSize;
serving=builder.serving;
calories=builder.calories;
fat=builder.fat;
sodium=builder.sodium;
carbothydrate=builder.carbothydrate;
}
//测试使用的输出方法:
public void show(){
System.out.print(servingSize+","+serving+","+calories+","+fat+","+sodium+","+carbothydrate);
}
}
客户端代码:
BuilderPattern coco = new BuilderPattern.Builder(240, 80).calories(20).sodium(35).carbothydrate(27).builder();
coco.show();