存储结果对象不正确的原始数据?

时间:2017-10-27 01:15:13

标签: java oop design-patterns

我有一个已经很长的课程,我想分开。有一次我做了很多计算(基于两个整数和两个列表)并将结果存储到结果对象中 我的想法是将整数和列表传递给“结果对象”,在其构造函数中进行计算并将结果分配给其实例变量(我将在后续步骤中传递结果对象)。通过这种方式,我将代码保存在结果存储位置(仅需要执行一次计算)。
这也将方法和数据保存在一个地方而不是两个地方,这增加了模块化。它给我留下了一个拥有它的类:原始数据,算法和结果。我只需要确保将参数传递给构造函数。

但我的直觉告诉我,这是一个设计缺陷。那么,存储原始数据与“结果”对象的不良做法是什么?我应该在对象内部还是外部进行计算,只需将其用作DTO?

1 个答案:

答案 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。