Mi a különbség gyakorlati szempontból egy singleton és egy statikus osztály között?
1. Egy singleton használható paraméterként
2. singleton valósithat meg interface-t
3. A singleton-nál kontrollálni tudod, hogy mikor inicializálódjon a példány
De egyébként teljesen ugyanaz a kettő, és igazából egyiket se érdemes használni.
Mindkettő nagyon hasznos dolog.
A statikus osztály tipikusan egy Utility, vagy Helper tervezési mintájú osztály. Lényege, hogy bármikor elérhető, bárhonnan, hivatkozhatsz rá függvénymutatóval is.
A singleton egy olyan osztály aminek a konstruktora rejtett, csak ő maga készíthet saját magából példányt. (C++ esetén egy friend is). Fontos, hogy inicializálható, így erőforrást is könnyebb hozzá rendelni, paraméterben átadható (bár ez általában értelmetlen), ha jól van megírva felszabadítja önmagát, azaz helyesen de-inicializál.
Összegezve, a singleton olyan egyetlen példányú osztály, ahol nyugodtan lehet memória erőforrásokat használni. Míg a statikus osztály modernebb felfogásban csak egy metódus tároló. Minimális (gyakran konstans) adattaggal.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!