Веб-сайт www.halifax.co.uk предлагает различные категории продуктов, такие как ипотечные кредиты, сбережения. Ипотечные и сберегательные продукты будут хранить разные поля данных. Это не соответствует наличию одного контроллера продуктов, который будет использоваться в большинстве случаев. Контроллер отдельных продуктов или контроллер для каждой категории продуктов?Создание приложения ASP.NET MVC с различными категориями продуктов
ответ
Простой ответ заключается в том, что это зависит от количества «бизнес-логики», которое несет каждая категория продукта. Вы должны посмотреть на свою модель домена и посмотреть, что действительно означает ваши категории продуктов в вашем домене.
В случае, например, на аукционе, основное внимание уделяется продукту. Категория действительно представляет собой только иерархию строк, которые можно использовать для маркировки продукта. Поскольку доступные категории также растут и сокращаются изо дня в день, создание контроллера для каждой категории создает кошмар для обслуживания.
В случае банковского сайта основное внимание уделяется каждой отдельной категории продуктов, например «Сберегательный счет», «Кредитные карты» и т. Д. Существует так много разницы между этими разными категориями, что имеет смысл создавать отдельные контроллеры для них.
С одной стороны каждая из этих категорий продуктов может иметь различное количество и тип полей. Тогда простой подход состоит в том, чтобы иметь разные контроллеры, каждый из которых ведет к различным представлениям, строго типизированным для разных моделей. «Ипотека» будет одной моделью со своими собственными полями и ее собственным Индексом, Детали, Редактировать и Удалить Виды и MortgageController. Аналогично для Сбережений. Это самый простой подход к приложениям ASP.NET MVC с использованием строго типизированных представлений. Обратите внимание, что даже в этом случае дублирование может быть устранено или сведено к минимуму путем тщательного ухода и рефакторинга контроллеров (и моделей, и видов, конечно).
Однако я бы рекомендовал проанализировать поведение каждого из этих типов продуктов. Если на самом деле все они ведут себя одинаково, есть способы обойти проблему с разным количеством или типом полей. Например, все модели разных типов могут наследовать общий базовый класс или реализовать общий интерфейс (последний может быть лучшим из двух решений, но трудно сказать, следует ли в этом случае предпочесть наследование или состав). Это всего лишь два варианта для разработки «слабо типизированных» представлений и контроллеров.
Я не могу сказать, следует ли вам идти так или иначе из краткого описания, которое вы дали, но я убежден, что ответ заключается в поведении моделей (а не их структуре). В моем личном опыте модели, которые ведут себя одинаково (например: все они выставляют одни и те же операции CRUD), должны обрабатываться одним образом, но поведенческие различия (например: различные бизнес-правила, которые должны быть проверены, когда модель определенного типа сохранены) необходимо обрабатывать по отдельности. HTH
- 1. Экспорт продуктов с категориями
- 2. отображение продуктов с категориями
- 3. База данных MySQL с продуктами, категориями продуктов и различными атрибутами
- 4. Создание «Live» ASP.NET MVC-приложения
- 5. Поиск продуктов с родительскими и дочерними категориями
- 6. Как получить коллекцию продуктов с несколькими категориями?
- 7. Поиск продуктов с соответствующими категориями symfony2?
- 8. Показать меню с различными категориями, используя Jekyll
- 9. Создание страниц PHP из приложения MVC asp.net
- 10. mvc 4 dropdownlist с категориями
- 11. Asp.NET MVC Просмотр с различными объектами
- 12. Загрузка файла ASP.NET MVC с различными входами
- 13. ASP.NET MVC - переопределение действия с различными параметрами
- 14. Вложенные приложения с ASP.NET MVC
- 15. создание страниц asp.net MVC
- 16. ASP.NET MVC Создание метода
- 17. Создание пейджера DetailsView в ASP.NET MVC
- 18. ASP.net MVC Просмотр Создание
- 19. Как сделать связанные простые продукты наследуемыми категориями родительских продуктов?
- 20. Отображение меню с категориями, подкатегорий и продуктов - Magento
- 21. списка продуктов с несколькими категориями в Prestashop 1,5
- 22. Как определить панировочные сухари для продуктов с несколькими категориями?
- 23. Хранение подобных продуктов с различными атрибутами
- 24. Разочарована с правильной архитектурой приложения ASP.NET MVC
- 25. Развертывание приложения ASP.Net MVC
- 26. Безопасность приложения ASP.NET MVC
- 27. Создание приложения asp.net exe
- 28. Создание галереи продуктов с EF 6 и MVC 5
- 29. Gradle JUnit категория дополнительное testtask с различными категориями
- 30. Jekyll - Следующая и предыдущие ссылки с различными категориями