#layer #n-layer
#слой #n-слой
Вопрос:
В n-слойном (скажем, 5-слойном) приложении, если для определенной операции доступны опции обхода одного из слоев и прямой связи со следующим уровнем, можно ли по-прежнему называть это «n-слойной» архитектурой или она превращается в (n-1)-слойную (4-слойную) архитектуру?
И должен ли рассматриваемый слой, который вы можете обойти, вообще рассматриваться как «слой»?
РЕДАКТИРОВАТЬ: Я пытаюсь реализовать приложение со следующей структурой —
Уровень представления (содержит сетки WPF)
Прикладной уровень (содержит логику приложения и рабочий процесс в виде служб приложений, извлекает объекты модели отображения из объектов модели домена, которые затем привязываются к сеткам пользовательского интерфейса)
Уровень домена (содержит только объекты модели домена)
Репозиторий (хранит данные, извлеченные из базы данных, изолирует нижние уровни от верхнего уровня)
Уровень отображения данных (сопоставляет объекты модели предметной области с объектами модели данных)
Уровень доступа к данным (содержит объекты модели данных, хранит и извлекает данные в базу данных и из базы данных)
— каждый из перечисленных выше реализован как отдельный проект, а на уровень домена ссылаются уровень приложений, репозиторий и уровень отображения данных. Теперь дело в том, что прикладной уровень напрямую взаимодействует с хранилищем, а не через доменный уровень, а доменный уровень (если я вообще могу назвать это уровнем) действует точно так же, как сквозная ссылка. Итак, вот откуда возникает мой вопрос, должен ли я называть это доменным «слоем»? Я думаю, что НЕТ. Но в доменно-ориентированном дизайне существует доменный уровень, верно? Должно быть, что-то не так в моей архитектуре? Где и что это такое?
Комментарии:
1. Я думаю, вы ночью путаете слои и ярусы…
2. @davidsleeps: Пожалуйста, объясните, как или где
Ответ №1:
У вас могло бы быть столько слоев, сколько вы хотите, и назвать это n-уровневой системой … используются ли они должным образом или слабо связаны — это другой вопрос.
Тот факт, что вы говорите об обходе слоя, может означать, что вы перепроектировали решение или вы внедрили слой бесполезным / неправильным способом … Вам нужно было бы предоставить несколько примеров использования, чтобы действительно помочь здесь больше…