Item 2: Consider a builder when faced many constructor parameters.
当类的构造参数越来越多我们该怎么办?
a.重叠构造器模式(如下 effective java 中的例子)
优点:感觉没啥优点,参数少时,可以用用。
缺点: 客户端调用构造器很麻烦,需要程序员知道参数个数、参数顺序、参数意义,很容易调用错误,同时会导致代码不可读。
b.JavaBean 方式创建, 通过setter方法设置参数
优点:构造过程可读性变强
缺点:构造过程被拆分,无法保证构造过程中JavaBean的一致性;JavaBean 方式导致类不再是不可变的了;要求程序员去保证线程安全。
c.构造器模式
优点: 构建器更加的灵活,方便调用、可重复调用以生成多个对象、代码可读性强
缺点:有一定的性能消耗,当性能要求很高的情况下,需慎重使用。
In summary, the Builder pattern is a good choice when designing classes whose constructors or static factories would have more than a handful of parameters.
当构造函数或者静态工厂方法参数越来越多的情况下,构建器是一个不错的选择。
网友评论