我有一个已经很长的课程,我想分开。有一次我做了很多计算(基于两个整数和两个列表)并将结果存储到结果对象中
我的想法是将整数和列表传递给“结果对象”,在其构造函数中进行计算并将结果分配给其实例变量(我将在后续步骤中传递结果对象)。通过这种方式,我将代码保存在结果存储位置(仅需要执行一次计算)。
这也将方法和数据保存在一个地方而不是两个地方,这增加了模块化。它给我留下了一个拥有它的类:原始数据,算法和结果。我只需要确保将参数传递给构造函数。
但我的直觉告诉我,这是一个设计缺陷。那么,存储原始数据与“结果”对象的不良做法是什么?我应该在对象内部还是外部进行计算,只需将其用作DTO?
答案 0 :(得分:0)
我认为您正在寻找的是通过存储先前执行的计算来节省一些CPU周期的一些方法,我认为这是一件好事。我会在构造函数中远离这样做,我建议的另一种方法是让私有变量保存结果(下面的C#代码)
public class MyCoolClass
{
private int? _myPreviousResult = null;
public int GetMyCalculationResult()
{
if (_myPreviousResult != null)
{
return _myPreviousResult;
}
// do the long calculation here
// ...
_myPreviousResult = result;
return _myPreviousResult;
}
}
如果计算中的任何变量发生变化,请将_myPreviousResult设置为null。