Как реализовать Strategy паттерн в Node.js?

Middle
276 просмотров
AFK Offer AI

Strategy позволяет менять алгоритм в runtime. Интерфейс: interface PaymentStrategy { charge(amount: number): Promise }. Реализации: StripeStrategy, PayPalStrategy, YooKassaStrategy. Контекст: class PaymentService { constructor(private strategy: PaymentStrategy) {} async pay(amount: number) { return this.strategy.charge(amount) } }. В TypeScript: функции вместо классов работают так же — просто передаёшь разные функции. Полезно для: разных провайдеров (payment, email, SMS), алгоритмов сортировки/поиска, разных форматов экспорта.

Следующий вопрос

Как работает type-safe API с Express и TypeScript?