美文网首页
java-Builder模式

java-Builder模式

作者: MrWu_ | 来源:发表于2017-05-03 20:36 被阅读233次

静态工厂和构建器有个共同的局限性;他们都不能很好地扩展到大量的可选参数。
用Builder模式,不直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器

public class Nutrition{
      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 Bulider{
            //必须参数
            private final int servingSize;
            private final int servings;
            //可选参数
            private int calories=0;
            privatre int fas=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 Nutrition build(){
                return new Nutrition(this);
          }
      }
      private Nutrition(Builder builder){
            servingSize=builder.servingSize;
            servings=builder.servings;
            calories=builder.calories;  
            fat=builder.fat;
            sodium=builder.sodium;
            carbohydrate=builder.carbohydrate;
      }
}

怎么使用呢?

Nutrition nutr=new Nutrition.Builder(240,8).calories(100).sodium(35).carbohyrate(27).build();

相关文章

  • java-Builder模式

    静态工厂和构建器有个共同的局限性;他们都不能很好地扩展到大量的可选参数。用Builder模式,不直接生成想要的对象...

  • JS 设计模式

    工厂模式 单体模式 模块模式 代理模式 职责链模式 命令模式 模板方法模式 策略模式 发布-订阅模式 中介者模式 ...

  • iOS设计模式

    设计模式:MVC模式、单例模式、观察者模式、工厂模式、代理模式、策略模式、适配器模式、模版模式、外观模式、创建模式...

  • iOS知识点总结

    一、设计模式:MVC模式、单例模式、观察者模式、MVVM模式、工厂模式、代理模式、策略模式、适配器模式、模板模式、...

  • 常用设计模式 2018-09-15

    目录 代理模式 单例模式 命令模式 工厂模式 桥接模式 策略模式 装饰模式 观察者模式 门面模式 代理模式 静态代...

  • 计算机等级考试三级数据库复习(五)

    1.数据库系统 三级模式——》内模式,模式,外模式 二级映像模式(外模式/模式,模式/内模式) 模式/内模式提供数...

  • Retrofit源码解析

    设计模式:建造者模式、工厂方法模式、外观模式、代理模式、单例模式、策略模式、装饰模式、适配器模式、代理模式 一、R...

  • GOF23(java设计模式)--行为型模式

    职责链模式、迭代器模式、中介者模式、命令模式、解释器模式、访问者模式、策略模式、模版方法模式、状态模式、观察者模式...

  • vim学习 02——模式

    vim学习 02——模式 基本模式普通模式插入模式可视模式选择模式命令行模式Ex 模式 派生模式操作符等待模式插入...

  • 互联网营销与促销模式

    互联网营销与促销模式:众筹模式 团购模式 秒杀模式 满赠模式 积分模式 软文模式 会员模式 抽奖模式 体验模式 拍...

网友评论

      本文标题:java-Builder模式

      本文链接:https://www.haomeiwen.com/subject/hcsltxtx.html