SOLID Principles in JavaScript
Which SOLID principle is being applied in this payment processing implementation?
interface PaymentStrategy {
process(amount: number): Promise<void>;
}
class CreditCardPayment implements PaymentStrategy {
process(amount: number) { /* ... */ }
}
class PayPalPayment implements PaymentStrategy {
process(amount: number) { /* ... */ }
}
class CryptoPayment implements PaymentStrategy {
process(amount: number) { /* ... */ }
}
class PaymentProcessor {
constructor(private strategy: PaymentStrategy) {}
processPayment(amount: number) {
return this.strategy.process(amount);
}
}