1、什么情况下考虑使用构造器
- 遇到多个构造器参数需要设置的时候/可能一次只需要设置其中特定的几项;
- 这时候使用重叠构造器模式,第一个构造器含一个参数,第二个两个,以此类推。会涉及到用不到的参数,造成失控;
- 这时候出现了JavaBeans模式,使用一个无参的构造器创建对象,之后使用setter方法设置每个必要的参数(setXxxxx)。缺点是调试困难,线程不安全。
2、Builder模式介绍
- 1、不直接生成想要的对象,而是让客户端利用必要的参数调用构造器,以此得到一个builde对象;
- 2、客户端在builder对象上利用类setter的方法,设置相关参数;
- 3、最后,客户端调用无参的build对象生成不可变的对象。
3、示例代码
package test;
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