Вопрос проверяет умение применять протоколы для разделения слоев, внедрения зависимостей и повышения тестируемости.
Короткий ответ
Протоколы позволяют описать границы между модулями через контракты. Благодаря этому компоненты зависят не от конкретных классов, а от интерфейсов. Это облегчает замену реализаций, мокирование в тестах и развитие проекта. Протоколы помогают уменьшить связность и избежать «комбайнов» в контроллерах. В архитектурах вроде MVVM, VIPER и Coordinator протоколы — базовый строительный материал.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.