Effective Java(1):遇到多个构造器参数时考虑用构建器(Builder模式)

    静态工厂方法和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。

  1. 解决办法之一重叠构造器:重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且扔难以阅读。

  2. 解决办法之二JavaBeans模式:通过调用一个无参构造器来创建对象,然后调用setter方法来设置参数。

  3. 解决办法之三Builder模式:不直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器(或静态工厂方法),得到一个builder对象,然后客户端builder对象上调用类似于setter的方法,来设置每个可选参数,最后客户端调用无参的build方法来生成不可变的对象。这个builder是它构建的类的静态成员类。



Builder模式适用于当生成一个对象时需要多个参数,特别是当大多数参数都是可选的时候。

与传统的重叠构造器模式相比,使用Builder模式的客户端代码将更易于阅读和编写,构建器也比JavaBeans更加安全。



你可能感兴趣的:(Effective Java(1):遇到多个构造器参数时考虑用构建器(Builder模式))