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.