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

Что такое Onion архитектура

Onion Architecture — это подход к проектированию приложений, где слои зависят от ядра, а не друг от друга. Основные принципы:

  1. Ядро (Domain) — содержит бизнес-логику и модели.
  2. Сервисы (Application) — реализуют сценарии использования.
  3. Инфраструктура (Infrastructure) — базы данных, внешние API.
  4. UI/API (Presentation) — взаимодействие с пользователем.

Зависимости направлены внутрь: внешние слои зависят от внутренних, но не наоборот. Это упрощает тестирование и замену компонентов.

Пример:

java
// Domain (ядро)
public interface UserRepository {
    User findById(Long id);
}

// Application (сервис)
public class UserService {
    private final UserRepository repository;
    public UserService(UserRepository repo) {
        this.repository = repo;
    }
    public User getUser(Long id) {
        return repository.findById(id);
    }
}

// Infrastructure (реализация репозитория)
public class JpaUserRepository implements UserRepository {
    @Override
    public User findById(Long id) { /* ... */ }
}

Преимущества: изолированность бизнес-логики, гибкость, легкость тестирования.

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

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

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

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