135 подписчиков
В Python паттерн singleton относится к шаблону проектирования, который ограничивает инстанцирование класса одним объектом. Это означает, что в каждый момент времени может существовать только один экземпляр класса. Модель синглтона часто используется для контроля доступа к ресурсам, таким как подключение к базе данных или пул потоков. Вот его пример в коде: Преимущество использования этого паттерна в том, что он гарантирует, что в любой момент времени существует только один экземпляр класса...
1 год назад
96 подписчиков
Singleton (Одиночка) — порождающий шаблон проектирования, гарантирующий, что в однопроцессном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру. 📎 Реализация синглтона через декоратор класса: def singleton(cls): # храним все разные синглтоны с одном словаре (класс -> экземпляр) instances = {} def getinstance(): # если класса нет среди ключей нашего словаря - создадим экземпляр if cls not in instances: instances[cls] = cls() # вернем ссылку на него return instances[cls] return getinstance Вот так мы помечаем, что класс MySingleton – синглтон: @singleton class MySingleton: def __init__(self): self...
2 года назад
Singleton в Python. Синглтон – это шаблон, который ограничивает создание экземпляра класса одним объектом. С помощью декоратора ты можешь определить класс как синглтон. Таким образом класс либо возвращает существующий экземпляр класса, либо создает новый экземпляр. Этот декоратор можно добавить к любому объявлению класса, и он обеспечит создание не более одного экземпляра. Любые последующие вызовы вернут уже существующий экземпляр.

Шаблон Singleton предоставляет механизм создания одного и только один экземпляра объекта, и предоставление к нему глобальную точку доступа. Поэтому, Singletons обычно используются в таких случаях, как ведение журнала или операции с базой данных, диспетчера очереди печати и многих других, где существует необходимость иметь только один экземпляр, который доступен во всем приложении, чтобы избежать конфликтующих запросов на один и тот же ресурс. Например, мы можем захотеть использовать один объект базы данных для выполнения операций с БД для обеспечения согласованности данных или один объект класса ведения журнала для нескольких служб, чтобы последовательно выгружать сообщения журнала в определенный файл журнала.

Вкратце, цель шаблона Singleton заключаются в следующем:

• Обеспечение создания одного и только одного объекта класса

• Предоставление точки доступа для объекта, который является глобальным для программы

• Контроль одновременного доступа к ресурсам, которые являются общими
2 года назад