Sobes.tech
Junior — Middle

Môžete vysvetliť princíp implementácie vzoru singleton v Pythone a jeho hlavné vlastnosti?

sobes.tech AI

Odpoveď od AI

Vzor singleton v Pythone je implementovaný tak, aby zabezpečil, že počas celej doby behu programu existuje iba jedna inštancia triedy.

Jedným z najjednoduchších spôsobov, ako ho implementovať, je použiť triedu s privátnym atribútom inštancie a metódou, ktorá vracia túto jedinú inštanciu:

class Singleton:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super().__new__(cls)
        return cls._instance

# Použitie
s1 = Singleton()
s2 = Singleton()
print(s1 is s2)  # True

Charakteristiky:

  • V Pythone neexistuje zabudovaný mechanizmus na obmedzenie vytvárania inštancií, preto je singleton implementovaný ručne.
  • Použitie metódy new umožňuje kontrolu nad vytváraním objektu.
  • Singleton je užitočný na správu globálneho stavu, napríklad konfigurácií alebo pripojení k databáze.
  • Je dôležité si uvedomiť, že nadmerné používanie singletonu môže viesť k problémom s testovaním a údržbou kódu.