> Приведи пример реализации паттерна Singleton в UIKit или Foundation (iOS, Swift)

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

Компании: Физтех-Центр

Стек: iOS, Swift

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

В UIKit и Foundation паттерн Singleton широко используется. Классический пример - UIApplication.shared. Реализация на Swift выглядит так:

SWIFT
class NetworkManager {
static let shared = NetworkManager()
private init() {
// Приватный инициализатор предотвращает создание экземпляров извне
}
func fetchData() {
// Логика запроса
}
}

В Foundation: UserDefaults.standard, FileManager.default, NotificationCenter.default. Вот пример с URLSession:

SWIFT
let session = URLSession.shared
// Используется для всех сетевых запросов, избегая дублирования конфигураций

Ключевые особенности:

  • Статическое свойство shared гарантирует единственный экземпляр.

  • Приватный init запрещает внешнее создание.

  • Потокобезопасность обеспечивается ленивой инициализацией через static let (Swift гарантирует атомарность).

Однако стоит помнить, что злоупотребление Singleton может усложнить тестирование и привести к скрытым зависимостям.

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

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