Я работаю над приложением формы .NET 3.5 с немного сложным поведением. Это для книжного инвентаря. Чтобы дать вам представление, рабочий процесс будет:
- Пользователь вводит код ISBN
- Если ISBN действителен, проверьте, существует ли он,
- Если он действителен и существует, показать сведения о книге и включить кнопку сохранения, если нет, показать кнопку «Добавить книгу»,
- Если это неверно, показать ошибку,
- В конце концов, пользователь нажимает «сохранить», поэтому запись должна быть сохранена.
Это четыре обязанности:
- Подтвердить ISBN,
- Проверка наличия книги,
- Показать детали книги,
- Сохранить новые данные книги.
У меня вопрос: должен ли я хранить логику приложения в одной MVP-структуре или я должен разделить ее на четыре MVP-структуры, по одной для каждой ответственности?
Хранение в одной MVP-структуре
- сделать модель более сложной
- сделать настройку тестов более сложной (множество кода настройки для каждого теста для выбора правильного валидатора, возвращенной книги и т. Д., Даже если они не используются),
- делает логику представления более понятной
Хранение его в отдельных MVP-структурах
- сделать модель проще,
- создать больше, но более простых тестов для каждого докладчика,
- сложность взаимодействия между докладчиками (как бы я сообщил докладчику о том, что ISBN действителен, чтобы можно было показать детали книги?)
Я пытаюсь использовать принципы Первого Ведущего, поэтому:
- Держите представление немым (таким образом никакие события как "Ведущий один проверил ISBN"),
- держать докладчиков без гражданства,
- Держите модели простыми (достаточно)
У кого-нибудь есть идеи, как лучше всего это сделать?