Это философский ответ на философский вопрос:)
То, что вы предлагаете, может быть правильным. Но реальный вопрос в том, действительно ли buttonEnabled
является хорошим кандидатом для вашей модели. Это чисто графический интерфейс и нет смысла быть там. Вещь, которая действительно специфична для интерфейса, принадлежит представлению, и больше нигде.
Теперь может быть причина, по которой кнопка отключена (например, запись недействительна). Тогда вы можете просто дать ему другое имя в модели (isValid
). Перевод с !isValid
на !buttonEnabled
станет частью контроллера или даже самого представления.
Но я предполагаю, что в вашем случае единственная причина заблокировать кнопку, когда нет содержимого, состоит в том, чтобы уменьшить вероятность отправки пользователем в чистом виде. В этом случае я бы сделал проверку полностью (javascript, если это веб), просто для удобства пользователя. В модели просто сгенерируйте исключение (IllegalArgumentException
кажется вероятным), если пустая строка все равно туда попадет.
Если вы проводите модульное тестирование своей модели, имеет больше смысла проверить, будет ли она жаловаться на пустую строку, а затем проверить, установлена ли для вашей модели buttonEnabled
в значение false. Если вы действительно хотите протестировать функциональность графического интерфейса, для этого есть решения (для Интернета на ум приходит селен).