Для веб-приложения (ASP.NET MVC), которое я сейчас разрабатываю, мы имеем следующую архитектуру:
-
Data Access Layer
: Логика для сохранения данных на произвольном db -
Domain
: Модель данных -
Service Layer
: бизнес-логика (например, обработка заказов, управление учетными записями и т.д.). -
Controller
: рассматривает службы и предоставляет/принимает данные в/из представления -
View
: Пользовательский интерфейс для пользователя
В сущности, я взял Model
и разделил его на DAL
, Service Layer
и Domain
. Я чувствовал, что заполнение всей логики в Model
сделало мой код чрезмерно сложным. Кроме того, я чувствовал, что это позволяет мне четко выражать свою бизнес-логику, не делая контроллер слишком много работать.
Теперь мой вопрос: Что называется этим типом архитектуры?
Как второстепенный вопрос: имеет ли этот тип архитектуры смысл? Если нет, я делаю что-то неправильно?