MVP Дизайн дилемма - PullRequest
       5

MVP Дизайн дилемма

0 голосов
/ 14 февраля 2012

Я пишу большое приложение для веб-форм и использую шаблон MVP.Приложение представляет собой заявку на кредит, и пользователю необходимо ответить на множество вопросов.Моя проблема в том, что на одной странице может быть до 15-20 вопросов, и их видимость зависит от предыдущих ответов.

Таким образом, каждый раз, когда пользователь отвечает на вопрос «А», представление может вызывать SetVisabilityB ()в докладчике, который обрабатывает, показать ли или скрыть вопрос "B".Пока все хорошо, но ответ на вопрос «B» показывает / скрывает вопрос «C», и когда пользователь меняет свое мнение по вопросу «A», представление должно вызывать как SetVisabilityB (), так и SetVisabilityC () ​​..Я нахожу это немного беспорядочным, поскольку теперь у меня есть места, где мне нужно вызывать 5-6 различных методов SetVisability для одного вопроса.

Должен ли я использовать «глобальный» метод SetVisability, который обновляет видимость для всехвопросы для каждого ответа или есть лучший способ решить эту проблему?

1 Ответ

1 голос
/ 14 февраля 2012

Моя главная проблема с вашим подходом состоит в том, что ваш взгляд содержит бизнес-логику, когда нужно показывать и скрывать вопросы. Точка зрения должна быть настолько глупой, насколько это возможно, и ваш докладчик должен принимать эти решения.

Я бы хотел, чтобы докладчик сообщил, что на вопрос дан ответ, и передал номер вопроса. Докладчик может скрыть или показать вопросы по мере необходимости. Это может принять форму оператора case, или, если все становится глупо сложным, вы можете переключиться на использование конечного автомата.

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