Mid SOLID

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

More from Design Patterns in C#

All questions for this course