Sobes.tech
Junior — Middle

Vysvetlite koncept vzoru Singleton a jeho hlavné vlastnosti.

sobes.tech AI

Odpoveď od AI

Vzor Singleton zabezpečuje, že trieda má iba jeden inštanciu a poskytuje globálny prístup k tejto inštancii. Je to užitočné, keď je potrebné centralizovane spravovať stav alebo zdroje, napríklad pri práci s nastaveniami aplikácie alebo správcom databázy.

Hlavné vlastnosti Singletonu:

  • Len jedna inštancia: trieda kontroluje vytváranie objektu a neumožňuje vytvoriť viac ako jeden.
  • Globálna dostupnosť: inštancia je dostupná z ktorejkoľvek časti programu prostredníctvom statickej metódy alebo vlastnosti.
  • Líná inicializácia: objekt je vytvorený pri prvom prístupe (lazy initialization).

Príklad implementácie Singleton v Dart (Flutter):

class Singleton {
  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton() {
    return _instance;
  }

  void someMethod() {
    print('Volanie metódy Singleton');
  }
}

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

Tu je konštruktor súkromný a prístup k inštancii je cez továrenský konštruktor, ktorý vždy vráti ten istý objekt.