Проверяет понимание паттернов проектирования и умение применять их для решения типовых задач архитектуры ПО.
Паттерн проектирования — это описание повторяющегося решения типовой задачи проектирования. Паттерны не привязаны к конкретному языку и не являются библиотекой: это скорее словарь, которым разработчики описывают архитектуру. Их делят на три большие группы по назначению.
Отвечают за создание объектов, скрывая детали их конструирования.
Описывают, как компоненты соединяются в более крупные структуры.
Определяют взаимодействие объектов и распределение обязанностей.
const strategies = {
card: (sum) => sum * 1.02,
cash: (sum) => sum,
crypto: (sum) => sum * 0.98,
};
function pay(method, sum) {
if (!strategies[method]) throw new Error('Unknown method');
return strategies[method](sum);
}
console.log(pay('card', 1000)); // 1020
console.log(pay('cash', 1000)); // 1000Здесь алгоритм оплаты выбирается во время выполнения, а добавление нового способа не требует правки функции pay — только новой стратегии.
class Config {
static instance;
constructor() {
if (Config.instance) return Config.instance;
this.env = 'production';
Config.instance = this;
}
}
const a = new Config();
const b = new Config();
console.log(a === b); // trueSingleton удобен для глобальных ресурсов, но злоупотребление им усложняет тестирование из-за скрытых зависимостей.
Итог: паттерны стоит применять, когда задача действительно повторяет известный сценарий — они делают код понятнее для команды и упрощают расширение, но не должны превращаться в самоцель.
Уровень
Рейтинг:
5
Сложность:
5
Навыки
JavaScript
React
Ключевые слова
Подпишись на Node.js Developer в телеграм