Sobes.tech
Назад к вопросам
Junior — Middle
109

Использовал ли ты паттерн Decorator при работе с TypeScript для расширения функциональности объектов?

Компании, где спрашивали
РосатомРосатом

Ответ от нейросети

sobes.tech AI

Паттерн 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()); // Выведет: Декорировано -> Основная функциональность

Таким образом, можно расширять объекты, не меняя их исходный код, что удобно для добавления новых возможностей или логирования.