Что должно быть ответственностью докладчика здесь? - PullRequest
0 голосов
/ 05 апреля 2010

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

UI = ASP.NET MVC

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

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

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

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

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

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

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

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

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

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

Спасибо

1 Ответ

1 голос
/ 05 апреля 2010

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

...