Sobes.tech
Junior — Middle

Magyarázza el a Singleton mintázat fogalmát és fő jellemzőit.

sobes.tech MI

Válasz az MI-től

A Singleton minta garantálja, hogy egy osztálynak csak egy példánya legyen, és globális hozzáférési pontot biztosít ehhez a példányhoz. Ez hasznos, amikor központilag kell kezelni az állapotot vagy erőforrásokat, például az alkalmazás beállításainál vagy adatbázis-kezelőnél.

A Singleton fő jellemzői:

  • Csak egy példány: az osztály ellenőrzi az objektum létrehozását, és nem enged több példányt.
  • Globális elérhetőség: a példány bármelyik programrészből elérhető statikus metódus vagy tulajdonság segítségével.
  • Lazán inicializálva: az objektum az első hozzáféréskor jön létre (lazy initialization).

Példa a Singleton megvalósítására Dart (Flutter) nyelven:

class Singleton {
  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton() {
    return _instance;
  }

  void someMethod() {
    print('Singleton metódus hívása');
  }
}

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

Itt a konstruktor privát, és az példányhoz való hozzáférés egy gyári konstruktoron keresztül történik, amely mindig ugyanazt a objektumot adja vissza.