我正在与一些同事讨论Java构造函数,设计模式以及使用非参数化构造函数初始化对象的好方法,如果我通常等待一些参数。
其中一个较老的人想出了类似的方法:
public class Foo {
public Foo() {
this(0,0,0);
}
public Foo(int a, int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}
..
}
我的问题是,这种风格是好的,它的行为究竟是什么?
据我理解应该是:
答案 0 :(得分:6)
So the GC has then to delete the first created one.
没有。链接构造函数时只创建了一个实例。
回答你的问题,是的,这是好的风格,假设你需要foo()
和foo(int, int, int)
答案 1 :(得分:6)
这称为Telescoping Constructor pattern。在Effective Java中,Joshua向alternatives提供了关于在何时使用的建议。