Луковая архитектура против 3-уровневой архитектуры

11

Я вижу только преимущества для луковой архитектуры по сравнению с 3-уровневой архитектурой, где BL должен вызывать методы для DAL (или интерфейса DAL) для выполнения CRUD. Лук имеет лучшее разделение проблем, тестируемость, ремонтопригодность и чище.

Итак, действительно ли луковая архитектура действительно лучше во всех аспектах, а 3-уровневая архитектура - это просто старый способ ведения дел, или есть некоторые сценарии, в которых я бы предпочел использовать 3-уровневую архитектуру, если так - что?

BornToCode
источник

Ответы:

10

Слои, лук, порты, адаптеры: все одинаково

Поскольку в этой статье ясно, что лук эквивалентен 3 слоям + применение принципа инверсии зависимости (DIP), возникает вопрос: «Где мне лучше использовать DIP?» Я бы сказал, любой не игрушечный проект. Использование DIP позволяет ядру вашего кода быть более изолированным, тестируемым и обслуживаемым. Когда вы действительно не заботитесь об этом, это когда это одноразовый проект или когда вы торгуете ремонтопригодностью ради производительности.

Также не путайте DIP с контейнерами DI (Dependency Injection). Одно не подразумевает другого.

Кейси Спикман
источник