Junior — Middle
Můžete vysvětlit princip implementace vzoru singleton v Pythonu a jeho hlavní vlastnosti?
sobes.tech AI
Odpověď od AI
Vzor singleton v Pythonu je implementován tak, aby bylo zajištěno, že během celého běhu programu existuje pouze jedna instance třídy.
Jedním z nejjednodušších způsobů, jak ho implementovat, je použití třídy s privátním atributem instance a metodou, která vrací tuto jedinou instanci:
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance
# Použití
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
Charakteristiky:
- V Pythonu neexistuje vestavěný mechanismus pro omezení vytváření instancí, proto je singleton implementován ručně.
- Použití metody new umožňuje kontrolu nad vytvářením objektu.
- Singleton je užitečný pro správu globálního stavu, například konfigurací nebo připojení k databázi.
- Je důležité pamatovat, že nadměrné používání singletonu může vést k problémům s testováním a údržbou kódu.