Sobes.tech
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.