> В чем разница фабрики и билдера (iOS, Swift)

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

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

Стек: iOS, Swift

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

Разница между фабрикой и билдером в контексте iOS/Swift заключается в их назначении и уровне абстракции.

Фабрика (Factory Method или Abstract Factory) - это порождающий паттерн, который делегирует создание объектов подклассам или отдельным классам. Он скрывает логику инстанцирования, возвращая готовый объект (часто одного типа или протокола). Пример: фабрика, создающая UIViewController в зависимости от типа пользователя.

SWIFT
protocol ViewControllerFactory {
func makeViewController(for user: User) -> UIViewController
}

Билдер (Builder) - это паттерн, который пошагово конструирует сложный объект, отделяя процесс сборки от представления. Он позволяет настраивать множество параметров и возвращает объект только после вызова метода build(). Пример: создание URLSessionConfiguration с кастомными таймаутами, кэшем и заголовками.

SWIFT
let config = URLSessionConfigurationBuilder()
.setTimeout(30)
.setCachePolicy(.returnCacheDataElseLoad)
.build()

Ключевые отличия:

  • Цель: Фабрика - создание объекта за один шаг (часто с выбором реализации). Билдер - сборка сложного объекта с множеством опциональных параметров.

  • Гибкость: Фабрика возвращает готовый объект, билдер позволяет настраивать его до финального вызова.

  • Использование: Фабрика подходит для создания семейств связанных объектов (например, разные типы алертов). Билдер - для объектов с большим числом конфигураций (например, NSAttributedString или кастомные вью).

В iOS часто комбинируют оба паттерна: фабрика может использовать билдер для создания сложных компонентов.

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

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