How would you implement Strategy pattern in .NET?
Example: Payment strategy selection
// Strategy Interface
public interface IPaymentStrategy
void Pay(decimal amount);
// Concrete Strategies
public class CreditCardPayment : IPaymentStrategy
public void Pay(decimal amount) => Console.WriteLine($"Paid
{amount} using Credit Card");
public class PayPalPayment : IPaymentStrategy
public void Pay(decimal amount) => Console.WriteLine($"Paid
{amount} using PayPal");
// Context
public class PaymentContext
private IPaymentStrategy _paymentStrategy;
public PaymentContext(IPaymentStrategy paymentStrategy)
_paymentStrategy = paymentStrategy;
public void ExecutePayment(decimal amount)
_paymentStrategy.Pay(amount);
Usage:
var context = new PaymentContext(new PayPalPayment());
context.ExecutePayment(200); // Outputs: Paid 200 using PayPal