Часто, когда мы выполняем команды или запрашиваем наши объекты, появляется дополнительная информация об операции, которую мы должны вернуть вызывающей стороне. Э.Г.
bool IsSomethingOkayToDo ()
В этом случае, если false, мы могли бы, чтобы вызывающий абонент знал, почему это было нехорошо.
В C # обычно я делаю:
строковая причина;
foo.IsSomethingOkayToDo (без причины);
(Или в случае нескольких причин вы могли бы передать в списке.)
Это лучший способ? Предполагая, что я хочу придерживаться функций, свободных от команд / запросов и побочных эффектов, есть ли другие альтернативы, одобренные ОО?