MVC вопрос дизайна для форм - PullRequest
2 голосов
/ 24 марта 2010

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

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

Заранее спасибо за любые рекомендации!

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Я бы предпочел создать триплетную модель Form-Controller для каждой формы, отображаемой пользователю. Всякий раз, когда пользователь нажимает кнопку «Далее» на форме, его контроллер должен общаться с внутренним менеджером, который заботится о отправке запроса на отправку следующей форме в цепочке. Наоборот, если нажата кнопка «Назад». Последняя форма имеет кнопку «Готово», которая отправляется менеджеру и передает последние биты информации.

Это позволит избежать наследования, сделает ваш код более надежным и позволит тестировать формы изолированно.

1 голос
/ 24 марта 2010

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

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