Singleton
Суть
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