Шаблон проектирования Singleton | OTUS >
1+0=2
1+0=2
Выбирайте курс из спецкаталога, а за покупку — дарим второй курс в записи. Поторопитесь! 26 ноября такая арифметика перестанет работать
Выбирайте курс из спецкаталога, а за покупку — дарим второй курс в записи. Поторопитесь! 26 ноября такая арифметика перестанет работать
Выбрать курс

Шаблон проектирования 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 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Два курса по цене одного
Два курса по цене одного
−5% на программу со стартом в ноябре и ещё один курс в записи в подарок. Мы такие добрые с 12 по 26 ноября
−5% на программу со стартом в ноябре и ещё один курс в записи в подарок. Мы такие добрые с 12 по 26 ноября