我不止一次看过表格的代码:
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()
的旧值。同时使用相同的方法操作和结果都可以避免这种情况。
你对此事的看法是什么?
由于
答案 0 :(得分:2)
如果您需要经常使用数据,我会使用此模式,并且(重新)生成的成本很高。但随后的回忆可能会更好,所以来电者不必关心。
答案 1 :(得分:1)
你甚至可以支持两者。抛出可以返回值,但也可以通过getResult()获得。如上所述,如果抛出的代价很高,则需要缓存该值以防其不止一次需要。