Junior — Middle
Pouvez-vous expliquer le principe de mise en œuvre du pattern singleton en Python et ses principales caractéristiques?
sobes.tech IA
Réponse de l'IA
Le motif singleton en Python est implémenté pour garantir qu'il n'existe qu'une seule instance de la classe tout au long de l'exécution du programme.
Une des méthodes simples d'implémentation consiste à utiliser une classe avec un attribut privé d'instance et une méthode qui retourne cette seule instance:
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance
# Utilisation
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
Caractéristiques:
- En Python, il n'existe pas de mécanisme intégré pour limiter la création d'instances, donc le singleton est implémenté manuellement.
- L'utilisation de la méthode new permet de contrôler la création de l'objet.
- Le singleton est utile pour gérer l'état global, par exemple, pour les configurations ou les connexions à une base de données.
- Il est important de se rappeler qu'une utilisation excessive du singleton peut entraîner des problèmes lors des tests et de la maintenance du code.