将Bean模式与Builder结合使用。 YourObject在构造中途不会有不一致的状态,但它仍然需要20多个set操作,你可以使YourObject不可变(如果你想) - 但不是YourObjectBuilder。
public class YourObject {
private Type field1;
private Type field2;
private Type field3;
...
YourObject ( Type field1 , Type field2 , Type field3 ... ) { }
}
public class YourObjectBuilder {
private Type field1;
private Type field2;
private Type field3;
...
public YourObjectBuilder() {
}
public YourObject make ( ) {
return new YourObject ( field1 , field2 , field3 ... ) ;
}
public void setField1(Type t) {
field1 = t;
}
public void setField2(Type t) {
field2 = t;
}
public void setField3(Type t) {
field3 = t;
}
...
}