Паттерн Decorator в TypeScript используется для динамического расширения функциональности объектов без изменения их исходного кода. Это достигается путем создания оберток (декораторов), которые добавляют новое поведение.
Использовал ли ты паттерн Decorator при работе с TypeScript для расширения функциональности объектов?
Паттерн Decorator в TypeScript используется для динамического расширения функциональности объектов без изменения их исходного кода. Это достигается путем создания оберток (декораторов), которые добавляют новое поведение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Паттерн Decorator в TypeScript используется для динамического расширения функциональности объектов без изменения их исходного кода. Это достигается путем создания оберток (декораторов), которые добавляют новое поведение.
Пример использования паттерна Decorator в TypeScript:
interface Component {
operation(): string;
}
class ConcreteComponent implements Component {
operation(): string {
return "Основная функциональность";
}
}
class Decorator implements Component {
protected component: Component;
constructor(component: Component) {
this.component = component;
}
operation(): string {
return this.component.operation();
}
}
class ConcreteDecorator extends Decorator {
operation(): string {
return `Декорировано -> ${super.operation()}`;
}
}
// Использование
const simple = new ConcreteComponent();
const decorated = new ConcreteDecorator(simple);
console.log(decorated.operation()); // Выведет: Декорировано -> Основная функциональность
Таким образом, можно расширять объекты, не меняя их исходный код, что удобно для добавления новых возможностей или логирования.