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.