Sobes.tech
Junior — Middle

Pode explicar o princípio de implementação do padrão singleton em Python e suas principais características?

sobes.tech IA

Resposta da IA

O padrão singleton em Python é implementado para garantir que exista apenas uma instância da classe durante toda a execução do programa.

Uma das formas mais simples de implementação é usar uma classe com um atributo privado de instância e um método que retorna essa única instância:

class Singleton:
    _instance = None

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

# Uso
s1 = Singleton()
s2 = Singleton()
print(s1 is s2)  # True

Características:

  • Em Python, não há um mecanismo embutido para limitar a criação de instâncias, portanto, o singleton é implementado manualmente.
  • O uso do método new permite controlar a criação do objeto.
  • Singleton é útil para gerenciar o estado global, por exemplo, para configurações ou conexões a bancos de dados.
  • É importante lembrar que o uso excessivo de singleton pode levar a problemas com testes e manutenção do código.