Back to questions
Andersen
Junior — Middle
79
Объясните концепцию паттерна Singleton и его основные особенности.
Companies where asked
Answer from AI
sobes.tech AI
Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. Это полезно, когда нужно централизованно управлять состоянием или ресурсами, например, при работе с настройками приложения или менеджером базы данных.
Основные особенности Singleton:
- Один экземпляр: класс контролирует создание объекта и не позволяет создать более одного.
- Глобальная доступность: экземпляр доступен из любой части программы через статический метод или свойство.
- Отложенная инициализация: объект создаётся при первом обращении (lazy initialization).
Пример реализации Singleton в Dart (Flutter):
class Singleton {
Singleton._privateConstructor();
static final Singleton _instance = Singleton._privateConstructor();
factory Singleton() {
return _instance;
}
void someMethod() {
print('Вызов метода Singleton');
}
}
void main() {
var s1 = Singleton();
var s2 = Singleton();
print(identical(s1, s2)); // true
}
Здесь конструктор приватный, а доступ к экземпляру идёт через фабричный конструктор, который всегда возвращает один и тот же объект.