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

Это один из наиболее часто используемых шаблонов. Существуют несколько объектов в приложении, которые должны быть в одном экземпляре.
Рассмотрим пример для более тщательного понимания:
Очень простой пример, скажем, логгер (Logger). Предположим, нам необходимо реализовать логгер и производить логгинг в файл в соответствии с временем и датой. В таком случае, мы не можем иметь более одного объекта логгера в приложении, иначе файл, в который будет производиться запись - будет создаваться с каждым новым объектом.
Мы используем одиночку для этого случая и создаем объект логгера при первом запросе или при старте сервера.
Разница подходов по использованию статических классов и статических методов:
В чем же разница в использовании класса-одиночки и статического класса?
Ответ состоит в том, что статический класс - один из подходов для создания класса-"одиночки".
Мы можем создать класс и объявить его final, а всего его методы - static. В таком случае, нам не удастся создать ни одного объекта класса.
Пример:
Преимущество использования статического подхода в том, что его легче использовать.
Недостаток - в будущем, вам не захочется, чтобы класс был статическим.
Материалы, которые могут вас заинтересовать
- Шаблон "Прототип" (Prototype)
- Шаблон "Строитель" (Builder)
- Шаблон "Абстрактная фабрика" (Abstract Factory Pattern)
- Шаблон "Фабрика" (Factory)
- Шаблон "Команда" (Command)
- Шаблон "Цепочка ответственности" (Chain of Responsibility)
- Шаблон "Заместитель" (Proxy)
- Шаблон "Приспособленец" (Flyweight)
- Шаблон "Фасад" (Facade)







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