DevPrep

Все темы › Шаблоны проектирования

Singleton

Junior PRO

Суть

Singleton — порождающий паттерн: у класса ровно один экземпляр, создаётся лениво, доступ глобальный. Ключевые признаки — static let shared и private init(): без приватного инициализатора это не синглтон, а «shared instance» — удобный экземпляр по умолчанию, рядом с которым можно создать другие. UserDefaults.standard, FileManager.default, URLSession.shared, NotificationCenter.default — именно shared instances (можно сделать UserDefaults(suiteName:), FileManager()); настоящие синглтоны — UIApplication.shared, UIDevice.current. Это классический вопрос-ловушка.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store