Builder Pattern

 

常用于有很多属性的类的实例化

 //  Builder Pattern 
          public class NutritionFacts { 
               private final int servingSize; 
               private final int servings; 
               private final int calories; 
               private final int fat; 
               private final int sodium; 
               private final int carbohydrate; 

               public static class Builder { 
                   // Required parameters 
                   private final int servingSize; 
                   private final int servings; 

                   // Optional parameters - initialized to default values 
                   private int calories           = 0; 
                   private int fat                = 0; 
                   private int carbohydrate       = 0; 
                   private int sodium             = 0; 

                   public Builder(int servingSize, int servings) { 
                        this.servingSize = servingSize; 
                        this.servings       = servings; 
                   } 

                   public Builder calories(int val) 
                        { calories = val;          return this; } 
                   public Builder fat(int val) 
                        { fat = val;               return this; } 
                   public Builder carbohydrate(int val) 
                        { carbohydrate = val;      return this; } 
                   public Builder sodium(int val) 
                        { sodium = val;            return this; } 

                   public NutritionFacts build() { 
                        return new NutritionFacts(this); 
                   } 
               } 

               private NutritionFacts(Builder builder) { 
                   servingSize     = builder.servingSize; 
                   servings        = builder.servings; 
                   calories        = builder.calories; 
                   fat             = builder.fat; 
                   sodium          = builder.sodium; 
                   carbohydrate = builder.carbohydrate; 
               } 
          } 

实例化:

 

NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8). 
        calories(100).sodium(35).carbohydrate(27).build(); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值