什么时候使用如下构建器模式有意义:
private static final Foo FOO1 = Foo.Builder().setX(...).setY(...).setZ(...).build();
private static final Foo FOO2 = Foo.Builder().setX(...).setY(...).setZ(...).build();
private static final Foo FOO3 = Foo.Builder().setX(...).setY(...).setZ(...).build();
... x100 ...
VS类似的东西
public class MyFoos {
public static class Foo1 implements Foo {
public String getX() {...}
public String getY() {...}
public String getZ() {...}
}
public static class Foo2 implements Foo {
public String getX() {...}
public String getY() {...}
public String getZ() {...}
}
public static class Foo3 implements Foo {
public String getX() {...}
public String getY() {...}
public String getZ() {...}
}
... x100...
}
Foo 有多复杂有关系吗?例如,假设我们使用了 Foo.Builder(),我们可能需要调用类似:
Foo.Builder().setSpecialFunction(new Function() {...})
其中 Function 类似于http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Function.html
这是否表明 Builder 模式在这种情况下不合适?如果没有,什么会更可取?谢谢!