Sobes.tech
Junior — Middle

Можете ли објаснити принцип имплементације патерна singleton у Python-у и његове главне особине?

sobes.tech АИ

Одговор од АИ

Модел singleton у Python-у реализује се да би се гарантовало да постоји само један пример класе током целог рада програма.

Један од најједноставнијих начина за имплементацију је коришћење класе са приватним атрибутом примерка и методе која враћа тај једини примерак:

class Singleton:
    _instance = None

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

# Коришћење
s1 = Singleton()
s2 = Singleton()
print(s1 is s2)  # True

Карактеристике:

  • У Python-у нема уграђеног механизма за ограничење креирања примерка, па се singleton имплементира ручно.
  • Коришћење метода new омогућава контролу над креирањем објекта.
  • Singleton је користан за управљање глобалним стањем, на пример, за конфигурације или везе са базом података.
  • Важно је запамтити да прекомерна употреба singleton-а може довести до проблема са тестирањем и одржавањем кода.