Builder模式

来源:互联网 发布:化妆品数据分析 编辑:程序博客网 时间:2024/05/22 14:26
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();
原创粉丝点击