Sobes.tech
Junior — Middle

¿Puede explicar el principio de implementación del patrón singleton en Python y sus características principales?

sobes.tech AI

Respuesta de la IA

El patrón singleton en Python se implementa para garantizar que exista solo una instancia de la clase durante toda la ejecución del programa.

Una de las formas más sencillas de implementarlo es usar una clase con un atributo privado de instancia y un método que devuelve esa única instancia:

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:

  • En Python no hay un mecanismo incorporado para limitar la creación de instancias, por lo que el singleton se implementa manualmente.
  • El uso del método new permite controlar la creación del objeto.
  • El singleton es útil para gestionar el estado global, por ejemplo, para configuraciones o conexiones a bases de datos.
  • Es importante recordar que un uso excesivo del singleton puede causar problemas con las pruebas y el mantenimiento del código.