Что должно быть ответственностью докладчика здесь?

У меня есть 3 слоя дизайна. (UI / BLL / DAL)

UI = ASP.NET MVC

На мой взгляд, у меня есть коллекция продуктов для категории. Пример: продукт 1, продукт 2 и т. Д.

Пользователь может выбрать или удалить (установив флажок) товары из представления и, наконец, сохранить их как коллекцию, когда пользователь отправит эти изменения.

С этим 3-х слойным дизайном, как эта коллекция продукта будет сохранена? Как осуществляется фильтрация товаров (удаление и добавление) к объекту категории?

Вот мои варианты.

(A) Это ответственность контроллера, тогда псевдокод будет

  1. Найдите продукты, которые пользователь выбрал или удалил, и сравните с существующими записями.
  2. Добавьте или удалите эту коллекцию к объекту категории.
  3. Вызов SaveCategory(категория); // BLL CALL

Здесь первые 2 шага процесса происходят в контроллере.

(B) Это ответственность BLL, тогда псевдокод будет

  1. Собирайте продукты, которые выбрал пользователь
  2. SaveCategory(категория, товары); // BLL CALL

Здесь дело за SaveCategory (BLL), чтобы решить, какие продукты должны быть удалены и добавлены в базу данных.

Спасибо

1 ответ

Логика должна жить на бизнес-уровне, а не на контроллере. Ваш контроллер должен быть как можно более тонким и просто управлять связью между представлением и другими уровнями, которые отвечают вашим моделям и бизнес-требованиям.

Другие вопросы по тегам