记录可选属性的默认值的惯例是什么?
当一个类包含带有getter和setter方法的可选属性时,是否应该通过getter或setter方法指定默认值?还是两个?
当用户停下来问自己“等等......如果我没有设置这个值会怎么样?”他们会先看哪种方法?
这是一个具体的例子:
KeepWithGroup
在上面的代码中,我希望默认情况下指定“verify”为真?
答案 0 :(得分:2)
Builder模式通常没有getter(导致一个流畅的API),因为我们的想法是设置所需的值并构建生成的对象。
即使您链接的维基百科示例也没有getter。
否则说没有指定的位置具有默认值,所以我建议查看其他API以了解他们做了什么选择并选择了一些令您满意的内容。
只要在Javadoc中记录某处,它就不重要了。如果你在正确的班级,即使它可能不在你想象的第一个地方,你也会找到它。毕竟,javadocs并不是那么大。
在您的示例代码中我希望默认值为false
,如果没有另外说明,但如果不是(或者即使它),则会提到至少在二传手中。但同样,没有规则,你会看到各种习俗。
答案 1 :(得分:0)
没有设置规则,类需要有getter和setter。但是,类的基本思想是从中创建对象。一个类就像一个蓝图。该对象是您使用蓝图构建的对象。该对象需要具有一些属性。如果类没有setter方法,则不会使用您正在构建的对象。同样,如果您需要使用该对象的属性,则需要一个getter。你可能不需要他们中的任何人,但不是他们两个。
答案 2 :(得分:0)
如果您正在谈论吸气剂和制定者,那么您就不会讨论施工。我期待某种构造函数,将对象初始化为有效状态。这应该照顾它,文件应放在那里。可能有多个构造函数。
如果您正在使用构建器模式,则应将其添加到build()
或construct()
方法,因为它应验证并创建所需的对象。
如果你有一个DTO,那么它应该有一个构造函数或一个构建器。吸气剂和制定者通常不是合适的设计。
但是,如果你想做类似的事情,我会添加默认值的getter,并将其称为,即getBananaWithDefault()
或{{1并且不公开普通的getter(或者让getter也有不同的名字)
在接口示例中,我将记录如下:
getDefaultedBanana()
但这是我的个人观点。我甚至可能放弃setVerify& getVerify并且只有/**
* if the returned JSON should be verified
*/
void setVerify(boolean setVerifying);
/**
* @return whether the JSON should be verified
*/
boolean getVerify();
/**
* Loads the JSON file.
* Will default to use verification if not set
* @throws VerificationException if verification is enabled and the JSON is invalid
*/
String load() throws VerificationException;
方法