Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: viper, interactor

За что отвечает Interactor в VIPER?

Вопрос проверяет понимание того, где должна находиться бизнес-логика и как она изолируется от UI и навигации.

Короткий ответ

Interactor в VIPER отвечает за бизнес-логику приложения. Он выполняет операции с данными, обращается к сервисам и принимает решения по правилам предметной области. Interactor не знает ничего о UI и навигации. Он общается с Presenter через протоколы. Это делает бизнес-логику изолированной и тестируемой.

Длинный ответ

Interactor — это центральное место для бизнес-логики в VIPER.

Определение

Interactor — компонент VIPER, отвечающий за выполнение бизнес-правил и работу с данными.

Основная ответственность

Перед тем как рассматривать код, важно чётко определить зону ответственности Interactor.

Interactor:

  1. реализует бизнес-логику

  2. управляет use case’ами

  3. обращается к сервисам и репозиториям

  4. преобразует данные в удобный для Presenter формат

При этом Interactor:

  • не знает про UIKit

  • не управляет навигацией

  • не форматирует данные для отображения

Взаимодействие с другими слоями

Interactor общается:

  • с Presenter — через протокол output

  • с сервисами — через абстракции

protocol UserInteractorInput {
    func loadUser()
}

protocol UserInteractorOutput: AnyObject {
    func didLoad(user: User)
}

Presenter вызывает Interactor:

interactor.loadUser()

Interactor сообщает результат:

output?.didLoad(user: user)

Почему бизнес-логика должна быть здесь

Если бизнес-логика находится во View или Presenter:

  • код становится сложно тестировать

  • появляются зависимости от UI

  • нарушается SRP

Interactor решает эту проблему, концентрируя логику в одном месте.

Тестирование

Interactor:

  • легко покрывается unit-тестами

  • не требует запуска UI

  • может тестироваться с моками сервисов

Вывод

Interactor — это «мозг» модуля VIPER. Всё, что связано с бизнес-правилами и use case’ами, должно находиться именно здесь.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • IOS

    IOS

Ключевые слова

#viper

#interactor

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.