Паттерн Singleton гарантирует, что класс имеет только один экземпляр на протяжении всего жизненного цикла приложения, предоставляя глобальную точку доступа к этому экземпляру.
Используй static свойство для создания и хранения единственного экземпляра:
class NetworkManager {
static let shared = NetworkManager()
private init() {} // Предотвращает создание экземпляров извне
}
Обращайся к нему из любого места в коде:
NetworkManager.shared.fetchData()
private init() — это критически важно — это предотвращает создание другими частями кода дополнительных экземпляров.
Синглтоны хорошо подходят для управления общими ресурсами приложения, такими как:
Несмотря на удобство, синглтоны имеют серьёзные недостатки:
Синглтоны — это практичное решение для действительно общих ресурсов, но их следует использовать с осторожностью. Для лучшей тестируемости и гибкости рассмотри dependency injection — передавай общие экземпляры явно вместо обращения к ним глобально.
Метод private init() в классе Singleton необходим, потому что он предотвращает создание дополнительных экземпляров класса внешним кодом.
Новый — ещё не проверен сообществом
Вы