Strategy — interchangeable algorithms.
Interface:
1public interface IPricingStrategy2{3 decimal CalculatePrice(Order order);4}
Implementations:
1public class RegularPricing : IPricingStrategy2{3 public decimal CalculatePrice(Order order) => order.Total;4}56public class DiscountPricing : IPricingStrategy7{8 public decimal CalculatePrice(Order order) => order.Total * 0.9m;9}
Usage:
1public class OrderService(IPricingStrategy strategy)2{3 public decimal GetPrice(Order order) =>4 strategy.CalculatePrice(order);5}
Key: Strategy for algorithm flexibility.