Junior — Middle
Обяснете концепцията за патърна Singleton и неговите основни характеристики.
sobes.tech AI
Отговор от AI
Шаблонът Singleton гарантира, че даден клас има само един екземпляр и предоставя глобална точка за достъп до този екземпляр. Това е полезно, когато е необходимо централизирано управление на състоянието или ресурсите, например при работа с настройки на приложението или мениджър на база данни.
Основни характеристики на Singleton:
- Само един екземпляр: класът контролира създаването на обекта и не позволява да се създадат повече от един.
- Глобална достъпност: екземплярът е достъпен от всяка част на програмата чрез статичен метод или свойство.
- Lazy инициализация: обектът се създава при първия достъп (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
}
Тук конструкторът е частен, а достъпът до екземпляра става чрез фабричен конструктор, който винаги връща един и същи обект.