Найти тему
proger ЧАЙНИК

Singleton в Python. Что это?

Шаблон проектирования Singleton это такой шаблон, который используется для создания одного экземпляра класса и предоставления одной глобальной точки доступа к этому объекту. Тем временем Singleton (Одиночка) – это экземпляр класса, который уникален во всем проекте и к нему предоставляется доступ отовсюду. Он является глобальным.

Поясню на примере. У каждой страны есть своё правительство и при этом оно одно, а создание нового правительство чревато плохими последствиями и вообще это запрещено.

Реализуем эту аналогию в Python следующим образом:

В примере мы определяем переменную __instance__, которая будет содержать единственный объект для создания экземпляра. Конструктор проверяет наличие существующего класса или выдает ошибку. Так мы можем избежать создания нового инстанса класса.

При извлечении объекта с помощью метода get_instance() мы проверяем, доступен ли существующий экземпляр, и возвращаем его. Если нет, то создаем его и опять возвращаем.

-2

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

Итак, сегодня мы познакомились и реализовали Singleton шаблон проектирования. Как и любой другой шаблон дизайна, он имеет свои плюсы и минусы. Поэтому перед его использованием мы должны проанализировать и принять решение, будет ли полезен данный прием в нашем проекте или нет.

Спасибо за внимание. Если вам понравилась статья, то ставьте лайки, делитесь с друзьями. Остались вопросы или замечания? Буду рад видеть ваши комментарии.