我不确定以前是否有过类似的问题,但是没有得到任何有用的答案。Setter vs Java中的重载构造函数
如问题所示,有什么更好的,有重载的构造函数或有多个setter函数?
场景:
public class Something {
private int a;
private int b;
public Something(int a, int b) {
this.a = a;
this.b = b;
}
... // Do Something
}
现在,我的基本要求是只有两个参数。现在明天,要求被改变了,我被要求添加一个新的参数c,然后在第二天d,并给出一个声明说我们可以有更多的字段。
我已经有这个构造函数在多个项目的依赖项。现在,回到我的问题
- 是否建议继续添加新的字段到已经重载的构造函数?
- 每次我需要添加一个新字段以便不中断相关代码时,创建一个新的重载构造函数?
- 或者只使用默认空的默认构造函数,并且只使用setter方法(搞乱了我的不变性,这是高度关注的不是)
是什么,你可以给我的建议吗?
“弄乱了我的不变性,这不是高度关注的问题”如果你已经努力使某个类不可变(因此更容易推理),不要轻易放弃这个工作。 – 2012-03-27 01:39:44
'......有什么更好的,有一个重载的构造函数或有多个setter函数?“”是“。但严重的是,这一切都取决于上下文。有时你需要两者,有时你需要在JavaBeans限制内工作,... – 2012-03-27 01:40:14