GUI и проверка данных [MVC] - PullRequest
       3

GUI и проверка данных [MVC]

2 голосов
/ 30 августа 2011

Если представление содержит недопустимые данные, кто отвечает за сообщение контроллеру о наличии недопустимых данных?[Прежде чем продолжать].

Например:

 Model:
  Name [must not be empty, and at least X characters]
  Age [must be an integer, greater than 0]
 View:
  Text box for the name [with some kind of indicator of being invalid]
  Text box for the age [with some kind of indicator of being invalid]

Когда контроллер получает уведомление о завершении ввода данных.[С точки зрения] Какой класс отвечает за уведомление контроллера о том, что данные неверны?[Допустим, пользователь не ввел имя и ввел не число для возраста.Однако я также вижу, как это является обязанностью представления, поскольку оно позволяет вводить неверные данные в первую очередь.

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Контроллер отвечает за «логику» в триаде MVC, и решение о том, являются ли данные действительными, определенно «логично», поэтому именно контроллер должен нести ответственность за принятие решения о том, являются ли данные действительными.Тем не менее, модель нередко участвует в этом решении (например, через атрибуты проверки ее членов или реализацию вспомогательного интерфейса проверки).

Представление вообще не должно участвовать в решениидействительны ли данные, поскольку представление не должно содержать какой-либо существенной логики.Представление может отображать информацию, касающуюся достоверности модели и / или ее частей (например, индикатор «плохое значение» рядом с текстовым полем), но решение об отображении этой информации должно в конечном итоге принять контроллер.

0 голосов
/ 30 августа 2011

Я бы сказал, что представление должно спросить модель, является ли ввод действительным. В конце концов, это модель, которая контролирует данные.

...