第2条: 构造器参数过多时考虑用构建器

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.

    当构造函数或者静态工厂方法参数越来越多的情况下,构建器是一个不错的选择。

你可能感兴趣的:(第2条: 构造器参数过多时考虑用构建器)