边界检查最合适的地方-构造函数还是二传手?

边界检查最合适的地方-构造函数还是二传手?,第1张

边界检查最合适的地方-构造函数还是二传手?

从构造函数调用可重写的方法是一个坏主意。做更多这样的事情:

private String name;private Float value;public MySampleClass(String theName, Float thevalue) {    this.name = theName;    setValueImpl(thevalue);}public void setName(String n) {    this.name = n;}public void setValue(Float v) {    setValueImpl(v);}private void setValueImpl(Float v) {    if (v < 0.0f) {        this.value = 0.0f;    } else if (v > 1.0f) {        this.value = 1.0f;    }}

这样就可以在两个地方进行验证,并且消除了对可覆盖方法的调用。有关更多信息,请参见此问题。

编辑: 如果您计划子类化

MySampleClass
并且希望验证设置器可用,请声明它
protected final
而不是
private



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5429297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存