我想我会尝试通过2个代码片段来解释我的问题:类方法的实现:它应该改变一个类的成员变量还是接受参数?
// snippet 1
class FooBar
{
private int value;
public int DetermineSomeResult()
{
PerformSomeCalculationOnValue();
PerformSomeMoreStuffOnValue();
return value;
}
public int GetCachedValue()
{
return value;
}
}
第一个实现主要有哪些私人整数成员进行操作的方法。
这里的第二个实施
// snippet 2
class FooBar2
{
private int value;
public int DetermineSomeResult()
{
int tempvalue =GetCachedValue();
tempvalue = PerformSomeCalculationOnValue(tempvalue);
tempvalue = PeformMoreStuffOnValue(tempvalue);
SetValue(tempvalue);
return tempvalue;
}
public int GetCachedValue()
{
return value;
}
}
对于第二个执行,没有变化的内部状态,除非所有的计算已经完成。设计明智哪一个更好?
我倾向于更喜欢第二个,因为它更清晰,显示依赖关系。然而,由于这个类本身已经存储了一个用于计算值的类成员,所以使用它似乎很愚蠢。
对此有何看法?
您关心的是线程安全吗? – 2010-07-21 07:30:25
不,至今。我的项目目前不涉及线程。 – Extrakun 2010-07-21 08:26:14