【发布时间】:2014-11-26 13:21:58
【问题描述】:
我研究了这个主题,发现通过构造函数分配字段是一种更好的做法,而不是 setter。但是,如果我有一个包含 10 个字段的对象怎么办?这将导致大型构造函数,这仍然被认为是好的做法吗?
例如:
public DefaultAccount(Long id, String name, String surname, String username, String password, Role role) {
this.id = id;
this.name = name;
this.surname = surname;
this.username = username;
this.password = password;
this.role = role;
}
这个构造函数对我来说看起来很大。
【问题讨论】:
-
这不是坏习惯。你的构造函数没有那么大,因为它不包含智能。
-
如果我的构造函数有两倍的字段怎么办?那还是正常的吗?
-
构造函数可以分配所有字段。如果您发现单个类具有这么多字段是正常的(并且可以是正常的),您可以拥有一个分配所有字段的构造函数。但是你应该有另一个参数更少的构造函数......
-
我还发布了此类问题,但由于他们说答案将基于意见,因此被否决了。在这种情况下,有些人可能也会这样认为,但我不这样认为:)。来自我的 +1!
-
@chsdk 这不是完全一样的问题!这里是关于大小而不是何时使用构造函数的原则。
标签: java constructor field setter