Встречается на собеседованиях • сегодня

В чем разница между гексагональной архитектурой и Onion

Гексагональная архитектура (Ports & Adapters) и Onion (луковая) архитектура — это два подхода к организации кода с акцентом на изоляцию бизнес-логики от внешних зависимостей.

Гексагональная фокусируется на четком разделении входа (UI, API) и выхода (БД, внешние сервисы) через порты (интерфейсы) и адаптеры (реализации). Бизнес-логика в центре, а внешние слои подключаются через адаптеры.

Onion архитектура делит систему на концентрические слои, где внутренние слои не зависят от внешних. В центре — доменная модель, далее — сервисы, репозитории, инфраструктура. Зависимости направлены внутрь.

Пример Onion:

java
// Domain (внутренний слой)
public class Order { ... }

// Service (средний слой)
public class OrderService {
    private final OrderRepository repository; // зависимость внутрь
    ...
}

// Infrastructure (внешний слой)
public class JpaOrderRepository implements OrderRepository { ... }

Ключевое отличие: Onion строже в направлении зависимостей (DIP), гексагональная — гибче в адаптерах. Обе уменьшают связанность, но Onion чаще используют в DDD.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы