Отделение метода операции от результата - PullRequest
0 голосов
/ 27 июля 2010

Я не раз видел код вида:

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 ]

2 голосов
/ 27 июля 2010

Я бы использовал этот шаблон, если вам нужно будет часто использовать данные, и генерировать их (пере) дорого.Но тогда, вероятно, будет лучше запоминание, так что вызывающему абоненту это не нужно.

1 голос
/ 27 июля 2010

Вы могли бы даже поддерживать оба. Throw может вернуть значение, но оно также будет доступно через getResult (). Как отмечалось выше, если бросать дорого, вы хотите кэшировать значение на тот случай, если оно понадобится более одного раза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...