Sobes.tech
Junior — Middle

Explicați conceptul de pattern Singleton și caracteristicile sale principale.

sobes.tech AI

Răspuns de la AI

Modelul Singleton garantează că o clasă are o singură instanță și oferă un punct de acces global la acea instanță. Acest lucru este util atunci când trebuie gestionat centralizat starea sau resursele, de exemplu, atunci când lucrați cu setările aplicației sau cu un manager de baze de date.

Caracteristicile principale ale Singleton:

  • O singură instanță: clasa controlează crearea obiectului și nu permite crearea altora.
  • Accesibilitate globală: instanța este disponibilă din orice parte a programului printr-o metodă sau proprietate statică.
  • Inițializare întârziată: obiectul este creat la prima solicitare (lazy initialization).

Exemplu de implementare a Singleton în Dart (Flutter):

class Singleton {
  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton() {
    return _instance;
  }

  void someMethod() {
    print('Apelarea metodei Singleton');
  }
}

void main() {
  var s1 = Singleton();
  var s2 = Singleton();
  print(identical(s1, s2)); // true
}

Aici, constructorul este privat, iar accesul la instanță se face printr-un constructor de fabrică, care returnează întotdeauna același obiect.