Mid From PDF SOLID Design Patterns & 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
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details