将操作方法​​与结果分开

时间:2010-07-27 12:27:48

标签: language-agnostic methods

我不止一次看过表格的代码:

DiceThrower dt = new DiceThrower();
dt.throw(); //this is a void method
int result = dt.getResult();

而不是

DiceThrower dt = new DiceThrower();
int result = dt.throw();

我的问题是......为什么?让throw方法返回结果不是更好吗?如果不这样做,我甚至可能忘记在throw()之前忘记调用getResult(),始终访问getResult()的旧值。同时使用相同的方法操作和结果都可以避免这种情况。

你对此事的看法是什么?

由于

2 个答案:

答案 0 :(得分:2)

如果您需要经常使用数据,我会使用此模式,并且(重新)生成的成本很高。但随后的回忆可能会更好,所以来电者不必关心。

答案 1 :(得分:1)

你甚至可以支持两者。抛出可以返回值,但也可以通过getResult()获得。如上所述,如果抛出的代价很高,则需要缓存该值以防其不止一次需要。