Sobes.tech
Back to questions
Junior — Middle
82

Объясните различия между паттерном Decorator и функциями в контексте их использования и назначения.

Answer from AI

sobes.tech AI

Паттерн Decorator — это структурный паттерн проектирования, который позволяет динамически добавлять объектам новые обязанности, оборачивая их в другие объекты-декораторы. Он применяется для расширения функционала без изменения исходного кода класса.

Функции в программировании — это блоки кода, которые выполняют определённую задачу и могут возвращать результат. В контексте Node.js функции часто используются для обработки данных, колбеков, middleware и т.д.

Основные различия:

  • Назначение: Decorator — для расширения поведения объектов, функции — для выполнения логики.
  • Использование: Decorator оборачивает объект, добавляя функциональность, функции вызываются для выполнения задачи.
  • Структура: Decorator — объект-обёртка, функции — блоки кода.

Пример Decorator в JS:

function loggerDecorator(fn) {
  return function(...args) {
    console.log('Вызов функции с аргументами:', args);
    return fn(...args);
  };
}

function sum(a, b) {
  return a + b;
}

const decoratedSum = loggerDecorator(sum);
console.log(decoratedSum(2, 3)); // Логирует вызов и возвращает 5

Здесь функция loggerDecorator действует как декоратор, расширяя поведение функции sum.