遇到多个构造器参数时要考虑用构建器——Effective Java 读书笔记
来源:互联网 发布:js防止ios侧滑返回 编辑:程序博客网 时间:2024/05/16 03:22
/** * 如果类的构造器或者静态工厂中具有多个参数,设计这种类时,Builder模式就是种不错的选择,特别是当大多数参数都是可选的时候。 * 与使用传统的重叠构造器模式相比,使用Builder模式的客户端代码将更易于阅读和编写,构建器也比JavaBeans更加安全。 * * @author 刘向峰 * */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 { // 必须的参数,final保证了它必须被赋值 private final int servingSize; private final int servings; // 可选项 private int calories = 0; private int fat = 0; private int sodium = 0; private int carbohydrate = 0; /** * 在构造函数中完成对必须参数的初始化 * * @param servingSize * @param servings */ public Builder(int servingSize, int servings) { this.servingSize = servingSize; this.servings = servings; } /** * * @param val * 对可选项进行赋值 * @return Builder对象,以进行链式调用赋值函数 */ 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 carbohydrate(int val) { carbohydrate = val; return this; } /** * 创建获取对象方法,将自己(Builder)作为参数传入 * * @return NutritionFacts对象 */ public NutritionFacts build() { return new NutritionFacts(this); } } /** * 私有化构造函数,保证对同一个对象进行操作 * * @param builder传入构造器进行赋值 */ private NutritionFacts(Builder builder) { servingSize = builder.servingSize; servings = builder.servings; calories = builder.calories; fat = builder.fat; sodium = builder.sodium; carbohydrate = builder.carbohydrate; } /** * 测试方法 * * @param args */ public static void main(String[] args) { NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35).carbohydrate(27).build(); }}
1 0
- 遇到多个构造器参数时要考虑用构建器——Effective Java 读书笔记
- Effective Java 2.2——遇到多个构造器参数时要考虑用构建器
- Effective Java第二条:遇到多个构造器参数时要考虑用构建器
- Effective Java (2) - 遇到多个构造器参数时要考虑用构建器
- Effective Java 第二条:遇到多个构造器参数时要考虑用构建器
- Effective-Java学习笔记 遇到多个构造器参数时要考虑用构建器
- effective java(一)遇到多个构造器参数 时要考虑用构建器
- effective java(2) 之遇到多个构造器参数时要考虑用构建器
- Effective Java -- 遇到多个构造器参数时要考虑用构建器(Builder)
- 《Effective java》读书记录-第2条-遇到多个构造器参数时要考虑用构建器
- Effective Java 创建和销毁对象 2.遇到多个构造器参数时要考虑用构建器
- Effective java第二条:遇到多个构造器参数时要考虑用构造器
- Effective Java 2 -- 遇到多个构造器参数的时候考虑构建器
- 2、遇到多个构造参数的时候需要考虑使用构建器(effective java)
- Effective Jave——第2条: 遇到多个构造器参数时考虑使用构建器(Builder)
- 读《effective java》笔记一:遇到多个构造器参数时要考虑用构造器
- [Effective Java] 第2条 遇到多个构造器参数时要考虑用构造器
- effective java读书札记值第2条:遇到多个构造器参数时要考虑用构造器
- Java算法题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
- Oracle Purge和drop的区别
- arcgis10.2.2桌面版具体的安装步骤过程
- spring注解
- java中switch语句的测试
- 遇到多个构造器参数时要考虑用构建器——Effective Java 读书笔记
- C++“输入输出流与文件系统”
- hibernate级联
- 嵌入式 errno的一些错误定义编辑
- JSON用法简介
- 简化工作——我的bat文件
- 第一个程序:电话拨号程序
- Hibernate @ManyToOne
- jsonp