Как только я обсудил дизайн, относительно шаблона команды. Мой партнер заявил, что объект команды не должен возвращать статус (успешный, неудачный и почему) после вызова метода .execute(). Причина в том, что вам не следует беспокоиться о том, выполняется ли команда или нет, потому что команда не должна содержать никакого состояния. Однако вы должны проверить после вызова, если команда имела ожидаемый эффект. Другой аргумент, который он утверждал, состоял в том, что в "Группе четырех" шаблон команды не показывает этот случай (возвращаемого статуса).
Я утверждал противоположную точку. GoF не представляет этот случай, но шаблон может быть смоделирован для ваших нужд. Если команда не увенчалась успехом, вызывающий клиент должен получить подтверждение статуса и в конечном итоге развернуть соответствующую реакцию. Заставляя клиента проверить, было ли достигнутое действие успешным, было подвержено ошибкам и выпущен дублированный код. Кроме того, бывают случаи, когда команда производит результат (например, команда, которая добавляет строку к сюжету, каким-то образом будет иметь идентификатор строки для возврата к клиенту), и притворяясь, что команды без состояния означает, что вам приходилось "выкинуть" новый идентификатор объекта из модели данных.
В конце концов, мы достигли компромисса, не возвращая статус, но сохраняя идентификатор вновь созданных объектов в объекте команды, и приложение все равно хорошо работало, но мне теперь интересно узнать ваше мнение.