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