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