Можете ли вы обойти слой для определенной операции в многоуровневой архитектуре? - PullRequest
1 голос
/ 20 мая 2011

В n-слойном (скажем, 5-слойном) приложении, если для определенной операции доступны опции, позволяющие обойти один из уровней и напрямую связаться со следующим уровнем, его все равно можно назвать «n- слой "или она превращается в (n-1) -уровневую (4-слойную) архитектуру?

А должен ли рассматриваемый слой, который вы можете обойти, вообще рассматриваться как "слой"?

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

1 Ответ

2 голосов
/ 20 мая 2011

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

Тот факт, что вы говорите об обходе слояможет означать, что вы перепроектировали решение или вы внедрили слой бесполезным / неправильным способом ... Вам нужно будет предоставить некоторые примеры использования, чтобы действительно помочь больше здесь ...

...