Шаблон "Одиночка" (Singleton)

max аватар
128

Это один из наиболее часто используемых шаблонов. Существуют несколько объектов в приложении, которые должны быть в одном экземпляре. 

Рассмотрим пример для более тщательного понимания:

Очень простой пример, скажем, логгер (Logger). Предположим, нам необходимо реализовать логгер и производить логгинг в файл в соответствии с временем и датой. В таком случае, мы не можем иметь более одного объекта логгера в приложении, иначе файл, в который будет производиться запись - будет создаваться с каждым новым объектом.

Мы используем одиночку для этого случая и создаем объект логгера при первом запросе или при старте сервера.

Разница подходов по использованию статических классов и статических методов:

В чем же разница в использовании класса-одиночки и статического класса?

Ответ состоит в том, что статический класс - один из подходов для создания класса-"одиночки".

Мы можем создать класс и объявить его final, а всего его методы - static. В таком случае, нам не удастся создать ни одного объекта класса.

Пример:

Преимущество использования статического подхода в том, что его легче использовать. 

Недостаток - в будущем, вам не захочется, чтобы класс был статическим.


Конец
Иммануил Кант предполагает, что если дать человеку все, чего он желает, то в ту же минуту он почувствует, что это все не есть все.

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке