Слой бизнес-логики трехуровневой архитектуры без логики

Здравствуйте, я сейчас работаю над школьным проектом, в котором мы делаем веб-приложение. У меня довольно хорошее представление о трехуровневой архитектуре, но на моем уровне бизнес-логики (BLL) у меня почти нет логики. Я использую большую часть необработанных данных, получаемых с моего уровня доступа к данным (DAL), для отображения на моем уровне представления (PL). В настоящее время в моих классах контроллера я просто вызываю методы классов фасада mapper, ничего не делая. Итак, мой вопрос:

Правильный ли это способ сделать это, поскольку я знаю, что DAL никогда не должен напрямую разговаривать с PL и наоборот, или я должен просто назвать контроллеры чем-то еще, более описывающим?

Кроме того, я создал класс контроллера для каждой сущности, но что, если у меня есть некоторые методы, которые находятся между двумя сущностями, что означает, что они обращаются к обоим классам сущностей.


person Daniel Winkel-Pedersen    schedule 19.04.2016    source источник


Ответы (2)


Довольно редко в реальном приложении база данных отображает ровно 1-1 со слоем представления. Обычно существует нормализация для баз данных SQL или денормализация для баз данных NoSQL. Кроме того, бизнес-уровню обычно требуется идентификация пользователя для обеспечения безопасности, которая не сопоставляется напрямую с представлением базы данных.

Последнее, что вы сказали об одном контроллере, знающем о двух объектах, совершенно нормально. Вот почему вы не используете эти объекты напрямую на уровне представления. Вы можете объединить эти сущности во что-то, что пользовательский интерфейс может более легко использовать, и сохранить их разделенными на уровне доступа к данным.

person Rob Conklin    schedule 20.04.2016

Похоже, у вас есть модель анемичного домена.

В «реальной жизни», если ваш домен настолько прост, вы можете отказаться от многоуровневой индивидуальной архитектуры и выбрать более простой способ, например Сценарий транзакции или подход RAD для вырезания файлов cookie, в котором можно автоматически сгенерировать большой объем кода.

person guillaume31    schedule 20.04.2016
comment
Хорошо, круто, спасибо за ввод, звучит логично! Мы должны использовать трехуровневую архитектуру в учебных целях (: - person Daniel Winkel-Pedersen; 24.04.2016