Junior — Middle
Kas saaksite selgitada singleton mustri Pythonis rakendamise põhimõtet ja selle peamisi omadusi?
sobes.tech AI
Vastus AI-lt
Singleton muster Pythonis on rakendatud selleks, et tagada, et kogu programmi töö jooksul eksisteerib ainult üks klassi eksemplar.
Üks lihtsamaid viise selle rakendamiseks on kasutada klassi privaatse eksemplari atribuudiga ja meetodiga, mis tagastab selle ainsa eksemplari:
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance
# Kasutamine
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
Omadused:
- Pythonis puudub sisseehitatud mehhanism eksemplaride loomise piiramiseks, seega on singleton käsitsi rakendatud.
- new meetodi kasutamine võimaldab kontrollida objekti loomist.
- Singleton on kasulik globaalse oleku haldamiseks, näiteks konfiguratsioonide või andmebaasi ühenduste jaoks.
- Oluline on meeles pidada, et singletoni liigne kasutamine võib põhjustada probleeme testimise ja koodi hooldusega.