Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: structural patterns, design patterns, adapter, decorator, facade

Что такое структурные шаблоны?

Вопрос проверяет понимание структурных шаблонов проектирования, которые определяют отношения между классами и объектами для построения гибких и масштабируемых архитектур.

Короткий ответ

Структурные шаблоны — это шаблоны проектирования, которые помогают организовать классы и объекты в более крупные структуры, обеспечивая гибкость и переиспользование кода. Они решают задачи совместимости интерфейсов, добавления функциональности без изменения исходного кода и упрощения сложных систем. Примеры: Адаптер, Декоратор, Фасад.

Длинный ответ

Что такое структурные шаблоны?

Структурные шаблоны проектирования (Structural Patterns) — это одна из трех основных категорий шаблонов, наряду с порождающими и поведенческими. Они фокусируются на том, как классы и объекты могут быть объединены для формирования более крупных структур, сохраняя при этом гибкость и эффективность. Основная цель — упростить проектирование системы, определяя типичные способы взаимодействия между компонентами.

Основные структурные шаблоны

  • Адаптер (Adapter) — позволяет объектам с несовместимыми интерфейсами работать вместе. Например, вы используете стороннюю библиотеку для работы с JSON, но ваша система ожидает XML. Адаптер преобразует вызовы.
  • Декоратор (Decorator) — динамически добавляет объекту новые обязанности, не изменяя его класс. Полезен, когда нужно расширить функциональность без создания множества подклассов.
  • Фасад (Facade) — предоставляет простой интерфейс к сложной системе подсистем. Скрывает детали реализации и упрощает использование.

Пример кода: Декоратор на JavaScript

class Coffee {
  cost() { return 5; }
}

class MilkDecorator {
  constructor(coffee) { this.coffee = coffee; }
  cost() { return this.coffee.cost() + 2; }
}

class SugarDecorator {
  constructor(coffee) { this.coffee = coffee; }
  cost() { return this.coffee.cost() + 1; }
}

let myCoffee = new Coffee();
myCoffee = new MilkDecorator(myCoffee);
myCoffee = new SugarDecorator(myCoffee);
console.log(myCoffee.cost()); // 8

В этом примере декораторы добавляют стоимость молока и сахара к базовому кофе, не изменяя класс Coffee.

Где применяются

Структурные шаблоны широко используются в разработке фреймворков, библиотек и крупных приложений. Например, Адаптер часто применяется при интеграции с внешними API, Декоратор — в системах логирования или кэширования, а Фасад — для упрощения работы с базами данных или сложными сервисами.

Вывод: Структурные шаблоны помогают создавать гибкие и поддерживаемые архитектуры, упрощая интеграцию и расширение функциональности. Их стоит применять, когда нужно организовать взаимодействие между компонентами без жесткой связанности.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#structural patterns

#design patterns

#adapter

#decorator

#facade

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.