Buildr是一个ruby的构建工具,用来构建Java项目,取代Maven 2.0
http://www.iteye.com/news/259/
http://buildr.apache.org/artifacts.html
public class A {
private int a;
private int b;
private int c;
public static class Builder {
private int a;
private int b;
private int c;
public Builder(){}
public Builder seta(int a) { this.a = a; return this}
public Builder setb(int b) { this.b = b; return this}
public Builder setc(int c) { this.c = c; return this}
public A build() { return new A(this)}
}
private A(Builder builder) {
this.a = builder.a;
this.b = builder.b;
this.c = builder.c;
}
}
调用构造方法:
A a = new A.Builder().seta(1).setb(2).setc(3).build();
这样就解决了以上所说的问题,但是他的缺点同样也是存在的,就是:
1.构造器写起来很复杂
2.创建对象开销比较大
所以构建器模式只适用于需要传入很多种情况参数的时候,比如大于4种参数的配合,才比较划算。
而且值得注意的是:最好在类的设计之初就考虑是否使用构建器,否则日后扩展起来新构建器旧构造器一起用维护起来不方便。