Шаблон проектирования Singleton | OTUS

Шаблон проектирования Singleton

Arch_headline_970x70-1801-410a68.png

Шаблон проектирования Singleton также называют шаблоном проектирования «Одиночка». Это порождающий шаблон, который гарантирует, что в однопроцессном программном приложении будет лишь один экземпляр некого класса. Также шаблон предоставляет глобальную точку доступа к вышеупомянутому единственному экземпляру.

Если абстрагироваться от этого скучного термина, взятого из Википедии, можно привести понятный, но немного грубый пример из реальной жизни: в стране может быть лишь один президент, этот президент действует по обстоятельствам и, в каком-то смысле, этот президент и является одиночкой. Скажем так, шаблон обеспечивает, что создаваемый объект — это единственный объект своего класса.

Прежде чем продолжить, скажем, что этот шаблон не стоит чрезмерно использовать. Все дело в том, что Singleton признан антипаттерном, однако это не значит, что он обязательно всегда плох. Порой, он может быть полезным, однако применять его следует с осторожностью. Он вводит в ваше приложение глобальное состояние, в результате чего его изменение в одном месте способно повлиять и на другие части разрабатываемого приложения, а это уже может вызвать трудности процесса отладки. И второй минус — Singleton делает ваш код связанным, то есть подводные камни-таки имеются.

Но давайте лучше перейдем к коду. Для создания «Одиночки» следует сделать конструктор приватным, отключить клонирование и расширение, плюс создать статическую переменную, необходимую для хранения экземпляра:

Screenshot_1-1801-9a7330.png

А вот и пример использования:

Screenshot_2-1801-14918b.png

Если интересует, есть реализация и на Java.

Arch_headline_970x70-1801-410a68.png

По материалам статьи «Design Patterns for Humans».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто