Sobes.tech
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
}

Тук конструкторът е частен, а достъпът до екземпляра става чрез фабричен конструктор, който винаги връща един и същи обект.