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

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

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

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

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



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

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

相关文章
相关标签/搜索