博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式--Builder模式
阅读量:6230 次
发布时间:2019-06-21

本文共 1945 字,大约阅读时间需要 6 分钟。

 本文地址:

 转载请在明显位置标明出处

1   public class Main5{ 2        3       private final int servingSize; 4        5       private final int servings; 6        7       private final int calories; 8        9       private final int fat;10      11      private final int sodium;12      13      private final int carbohydrate;14      15      public static class Builder{16          17          private final int servingSize;18          19          private final int servings;20          21          private int calories = 0;22          23          private int fat = 0;24          25          private int sodium = 0;26          27          private int carbohydrate = 0;28          29          public Builder(int servingSize,int servings){30              this.servingSize = servingSize;31              this.servings = servings;32          }33          34          public Builder calories(int calories){35              this.calories = calories;36              return this;37          }38          39          public Builder fat(int fat){40              this.fat = fat;41              return this;42          }43          44          public Builder sodium(int sodium){45              this.sodium = sodium;46              return this;47          }48          49          public Builder carbohydrate(int carbohydrate){50              this.carbohydrate = carbohydrate;51              return this;52          }53          54          public Main5 build(){55              return new Main5(this);56          }57      }58      59      private Main5(Builder builder){60          servingSize = builder.servingSize;61          servings = builder.servings;62          calories = builder.calories;63          fat = builder.fat;64          sodium = builder.sodium;65          carbohydrate = builder.carbohydrate;66      }67  }

 

 

当一个类有很多属性

有很多的熟悉可以是默认的值的时候

可以通过写多个不同参数的构造方法去实现

但是很麻烦

这种方式设计上很灵活

基本上可以上任意的组合见Effective java (中文第二版) 第11页

转载于:https://www.cnblogs.com/masque/p/3817310.html

你可能感兴趣的文章
年计划,技术儿告诉你怎么做?
查看>>
VCT-Virtual Cable Test-虚拟电缆检测
查看>>
Java ibatis调用存储过程出现阻塞
查看>>
例解三层交换原理
查看>>
java-第十一章-类的无参方法-实现菜单的级联效果
查看>>
如何检测集群中每台主机的状态
查看>>
时针、分针在一昼夜 24 小时内重合多少次?
查看>>
PHP 5 常量
查看>>
第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
查看>>
react的style里面不支持important的解决办法
查看>>
JS基本问题
查看>>
我的第一篇博客
查看>>
php版本之殇
查看>>
IDEA 葵花宝典
查看>>
IDEA 问题汇总
查看>>
vmware安装软件包时出错 windows installer返回1613
查看>>
XenDesktop5.x/XenApp6.x访问数据流
查看>>
python 的日志logging模块学习
查看>>
HBase 源码编译错误: RpcServer.java: cannot find symbol
查看>>
zabbix监控中遇到的错误
查看>>