Junior — Middle
Puteți explica principiul implementării pattern-ului singleton în Python și caracteristicile sale principale?
sobes.tech AI
Răspuns de la AI
Modelul singleton în Python este implementat pentru a garanta că există doar o singură instanță a clasei pe durata întregii execuții a programului.
Unul dintre cele mai simple moduri de implementare este să folosiți o clasă cu un atribut privat de instanță și o metodă care returnează această singură instanță:
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance
# Utilizare
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
Caracteristici:
- În Python, nu există un mecanism încorporat pentru limitarea creării de instanțe, așa că singleton-ul este implementat manual.
- Utilizarea metodei new permite controlul asupra creării obiectului.
- Singleton-ul este util pentru gestionarea stării globale, de exemplu, pentru configurații sau conexiuni la bazele de date.
- Este important să rețineți că utilizarea excesivă a singleton-ului poate duce la probleme cu testarea și întreținerea codului.