对于属性获取者来说,多少逻辑太多了?例如,我有如下代码:
public double value
{
get
{
if (condition1
|| condition2
|| condition3
|| condition4)
{
_value = anotherValue;
}
return _value;
}
}
Run Code Online (Sandbox Code Playgroud)
我读过各种帖子,说属性中的代码不应该很昂贵。但是“昂贵”这个词对我来说有点含糊。
一般来说,在 OOP 中,getter(setter 也是)应该是一个微不足道的操作。您在上面发布的内容是微不足道的,具体取决于实际情况。
您提到“昂贵”对您来说是一个模糊的术语。计算成本高的操作意味着需要很长时间才能完成(通常是因为它必须完成大量计算——这过于简单化,但近似值不错)。例如,考虑:
if (a == 5
|| b == true
|| c == "FOO!"
|| d == 3.14159)
{
_value = anotherValue;
}
return _value;
Run Code Online (Sandbox Code Playgroud)
在这个例子中,条件是微不足道的,你的程序将几乎瞬间处理这个块。另一方面:
if (some_slow_function())
{
_value = anotherValue;
}
return _value;
Run Code Online (Sandbox Code Playgroud)
假设 some_slow_function 确实运行缓慢,这个块将需要很长时间返回_value,使其不再微不足道。如果这个 getter 经常被调用,some_slow_function也会经常被调用,导致它成为你的程序的瓶颈并导致它运行缓慢。
| 归档时间: |
|
| 查看次数: |
2942 次 |
| 最近记录: |