Описание тега onion-architecture
Джеффри Палермо предложил Луковую аркитектуру. Это похоже на гексагональную архитектуру Алистера Кокберна или на порты и адаптеры.
Фундаментальная мотивация подхода - избежать межуровневых зависимостей, обычно связанных с подходом многоуровневой архитектуры. Это достигается за счет размещения всей инфраструктуры, включая базы данных, за пределами проблемной области.
По словам Джеффри Палермо:
Общая философия луковой архитектуры состоит в том, чтобы держать вашу бизнес-логику и модель в середине (ядре) вашего приложения и выдвигать ваши зависимости как можно дальше наружу.
Таким образом, проблемная область полностью не зависит от необходимой инфраструктуры (тестирование, базы данных, безопасность и т. Д.). Например, это означает, что тестирование доступа к базе данных может быть выполнено без реальной базы данных.