Что должно быть ответственностью докладчика здесь?
У меня есть 3 слоя дизайна. (UI / BLL / DAL)
UI = ASP.NET MVC
На мой взгляд, у меня есть коллекция продуктов для категории. Пример: продукт 1, продукт 2 и т. Д.
Пользователь может выбрать или удалить (установив флажок) товары из представления и, наконец, сохранить их как коллекцию, когда пользователь отправит эти изменения.
С этим 3-х слойным дизайном, как эта коллекция продукта будет сохранена? Как осуществляется фильтрация товаров (удаление и добавление) к объекту категории?
Вот мои варианты.
(A) Это ответственность контроллера, тогда псевдокод будет
- Найдите продукты, которые пользователь выбрал или удалил, и сравните с существующими записями.
- Добавьте или удалите эту коллекцию к объекту категории.
- Вызов SaveCategory(категория); // BLL CALL
Здесь первые 2 шага процесса происходят в контроллере.
(B) Это ответственность BLL, тогда псевдокод будет
- Собирайте продукты, которые выбрал пользователь
- SaveCategory(категория, товары); // BLL CALL
Здесь дело за SaveCategory (BLL), чтобы решить, какие продукты должны быть удалены и добавлены в базу данных.
Спасибо
1 ответ
Логика должна жить на бизнес-уровне, а не на контроллере. Ваш контроллер должен быть как можно более тонким и просто управлять связью между представлением и другими уровнями, которые отвечают вашим моделям и бизнес-требованиям.