Back to questions
Middle+
6
Паттерны проектирования и реализация Singleton.
Companies where asked
SSP Soft
Answer from AI
sobes.tech AI
Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. Это полезно, когда нужно централизованно управлять ресурсами, например, настройками или подключением к базе данных.
Пример реализации 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
В многопоточной среде нужно обеспечить потокобезопасность, например, с помощью блокировок. В других языках (Java, C#) Singleton часто реализуют с помощью статических методов и ленивой инициализации.