Inject a call automatically
Inject a call automatically I have a scenario which is based on the Open Closed principle. I have a Cart class, which has a method CalculateTotal() . This method takes MODE and QTY as parameters. Cart CalculateTotal() MODE QTY Based on the MODE , the amount is calculated. MODE public class Cart { ICalculator calculator; public Cart() { calculator = new Calculator(); } public decimal CalculateTotal(string MODE,decimal QTY) { return calculator.CalculateTotal(MODE, QTY); } } public interface ICalculator { decimal CalculateTotal(string MODE, decimal QTY); } public class Calculator : ICalculator { private readonly List<IRule> rules; public Calculator() { rules = new List<IRule>(); rules.Add(new OrdinaryRule()); rules.Add(new SpecialRule()); rules.Add(new OfferRule()); } public decimal CalculateTotal(string MODE, decimal QTY) { return rules.First(x => x.IsMatch(MO...