#вопросы_с_собеседований
🐦 Swift
Что такое паттерн Singleton и где он может быть полезен?
Паттерн Singleton гарантирует, что класс имеет только один экземпляр и обеспечивает глобальную точку доступа к этому экземпляру. Синглтоны полезны для общих ресурсов, таких как сетевые сессии или соединения с базами данных, где наличие нескольких экземпляров может привести к конфликтам или потреблению чрезмерных ресурсов.
Пример синглтона:
class NetworkManager {
static let shared = NetworkManager()
private init() {
// Инициализация сетевых конфигураций или задач
}
func fetchData(from url: URL, completion: @escaping (Data?, Error?) -> Void) {
URLSession.shared.dataTask(with: url) { data, response, error in
DispatchQueue.main.async {
completion(data, error)
}
}.resume()
}
}
В этом примере NetworkManager имеет статическое свойство shared, которое хранит единственный экземпляр класса.
🐦 Swift
Что такое паттерн Singleton и где он может быть полезен?
Паттерн Singleton гарантирует, что класс имеет только один экземпляр и обеспечивает глобальную точку доступа к этому экземпляру. Синглтоны полезны для общих ресурсов, таких как сетевые сессии или соединения с базами данных, где наличие нескольких экземпляров может привести к конфликтам или потреблению чрезмерных ресурсов.
Пример синглтона:
class NetworkManager {
static let shared = NetworkManager()
private init() {
// Инициализация сетевых конфигураций или задач
}
func fetchData(from url: URL, completion: @escaping (Data?, Error?) -> Void) {
URLSession.shared.dataTask(with: url) { data, response, error in
DispatchQueue.main.async {
completion(data, error)
}
}.resume()
}
}
В этом примере NetworkManager имеет статическое свойство shared, которое хранит единственный экземпляр класса.