- Порождающие шаблоны (Creational patterns)
- Структурные шаблоны (Structural patterns)
- Поведенческие шаблоны (Behavioral patterns)
- Паттерны проектирования (Э. Фримен, Э. Фримен), издательство O'Reilly
- Википедия
- Design Pattern Game
- refactoring.guru
- Просторы интернета
В JavaScript нет интерфейсов и абстрактных классов. Поэтому соответствие структуры классов необходимому формату достигается в основном путем следования договоренностям. Разработчик определяет интерфейс (набор методов и свойств, которым должен обладать класс) и самостоятельно контролирует его соблюдение в каждом классе.
В примерах интерфейс при необходимости будет описываться в комментариях со словом Interface
.
Для каждого паттерна по возможности приводится как абстрактные, так и реальные примеры, встречающиеся в JS-разработке.
Чтобы запускать код примеров, установите зависимости проекта:
npm install
Команды для запуска приведены в описании примеров.