> В чем разница паттернов Bridge и Proxy (iOS, Swift)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Bip.ru

Стек: iOS, Swift

> Пример ответа

Основное различие между паттернами Bridge и Proxy - в их цели и ответственности.

Bridge (Мост) предназначен для разделения абстракции и реализации, чтобы они могли изменяться независимо. В iOS/Swift это часто используется, когда у вас есть, например, протокол NetworkService (абстракция) и конкретные реализации URLSessionNetworkService или AlamofireNetworkService. Bridge позволяет подменять реализацию без изменения кода, который использует абстракцию.

Proxy (Заместитель) - это суррогат, который контролирует доступ к другому объекту. В iOS распространены: Lazy Proxy (ленивая загрузка, например, UIImageView с отложенной загрузкой изображения), Protection Proxy (проверка прав доступа) или Remote Proxy (работа с удаленным объектом через сеть). Proxy перехватывает вызовы и добавляет дополнительную логику (кэширование, логирование, контроль доступа), делегируя основную работу реальному объекту.

Ключевое отличие: Bridge расширяет архитектуру, позволяя комбинировать абстракции и реализации (структурный паттерн). Proxy оборачивает один объект, чтобы управлять доступом к нему (паттерн-заместитель). В Swift Bridge часто реализуется через протоколы и композицию, Proxy - через класс-обертку, который хранит ссылку на реальный объект.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью