Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Зачем в JavaScript использовать паттерн singleton?

#javascript #ооп #шаблоны_проектирования


Разбираюсь с паттернами. Нашёл в интернете, как сделать на JavaScript конструктор,
который бы реализовывал паттерн singleton. Но ведь, как я понимаю, в отличие от многих
ООП языков, в JavaScript можно создавать объекты, не описывая классы (конструкторы),
а просто создать через фигурные скобочки. Получается, можно всегда, когда в JavaScript
нужен singleton, писать не конструктор его реализующий, а просто создавать глобальный
объект, и пользоваться им, присваивая его другим переменным. Подскажите, пожалуйста,
есть ли в этом недостатки в сравнении с созданием конструктора, реализующего singleton?
    


Ответы

Ответ 1



Формально, эти самые 'фигурные скобочки' тоже создаются через конструктор new Object, как и примитивы через обёртки. В пространстве JS, где всё непостоянно и специфично (во всяком случае было когда-то), этот паттерн не очень-то нужен. Сейчас, когда JS вырос из песочницы браузеров и занимает внушительную нишу, он может использовать Singleton для взрослых целей, где после инициализации менять ничего не нужно: одно подключение к БД, один объект пользователя/сессии и пр. Впрочем, с новыми возможностями (Object.seal, Object.preventExtensions, Object.freeze), этот паттерн опять же не нужен - всё решено изящнее и в духе языка (ИМХО).

Комментариев нет:

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