1、传统方式
- 静态工厂和构造方法都有一个限制:他们不能很好的适配大量可选参数。
- 程序员一般用重叠构造器方式解决,但是并不好
1 | public class NutritionFacts { |
总之,重叠构造器模式当有很多参数的时候很难写代码,同时阅读也比较困难。
2、构建模式
builder模式可以很好解决多个可选参数
1 | public class NutritionFacts2 { |
3、继承实现
- 父类
1 | import java.util.EnumSet; |
- 子类
1 | import java.util.Objects; |
- 子类
1 | public class Calzone extends Pizza { |
- 调用
1 | public class PizzaTest { |
4、缺点
- 构建器器模式也有⾃自身的缺点。为了了创建对象,你必须要先创建其构建器器。虽然在实际情况中,
创建构建器器的成本并不不是很⾼高,但在性能关键的情况下这就会导致问题了了。此外,构建器器模
式要⽐比重叠的构造⽅方法模式更更加冗⻓长,这样只有在参数数量量⾜足够多的情况下使⽤用构建器器模式
才是值得的,⽐比如说4个以上的参数。