static void Main(string[] args) { while (true) { context = new CalculatorContext(); Console.WriteLine("Hello, welcome to the Strategy Pattern PoC."); Console.WriteLine("Please, select your Calculation method:"); Console.WriteLine(Environment.NewLine + "1 - Addition"); Console.WriteLine(Environment.NewLine + "2 - Subtraction"); Console.WriteLine(Environment.NewLine + "3 - Multiplication"); var inputChoice = Convert.ToInt32(Console.ReadLine()); var strategy = context.GetCorrectStrategy(inputChoice); if (strategy == "AdditionStrategy") { context.SetStrategy(new AdditionStrategy()); } else if (strategy == "SubtractionStrategy") { context.SetStrategy(new SubtractionStrategy()); } else if (strategy == "MultiplicationStrategy") { context.SetStrategy(new MultiplicationStrategy()); } Console.WriteLine("Please, enter enter in the first number"); var firstNumber = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Please, enter enter in the second number"); var secondNumber = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Answer:"); Console.WriteLine(context.ExecuteStrategy(firstNumber, secondNumber)); } }
private static void Strategy() { #region Strategy decimal a = 10; decimal b = 5; CalculatorContext calculatorContext = new CalculatorContext(); calculatorContext.SetStrategy(new StrategyAddition()); Console.WriteLine("Resultado: " + calculatorContext.Calculate(a, b)); calculatorContext.SetStrategy(new StrategySubtraction()); Console.WriteLine("Resultado: " + calculatorContext.Calculate(a, b)); calculatorContext.SetStrategy(new StrategyMultiplication()); Console.WriteLine("Resultado: " + calculatorContext.Calculate(a, b)); calculatorContext.SetStrategy(new StrategyDivision()); Console.WriteLine("Resultado: " + calculatorContext.Calculate(a, b)); calculatorContext.SetStrategy(new StrategyExponentiation()); Console.WriteLine("Resultado: " + calculatorContext.Calculate(a, b)); #endregion Strategy }
static void Main(string[] args) { Console.WriteLine("Hello World!"); var random = new Random(); var firstNumber = random.Next(-10, 30); var secondNumber = random.Next(-20, 40); var context = new CalculatorContext(); context .SetStrategy(new SumStrategy(firstNumber, secondNumber)) .SetStrategy(new SubtractionStrategy(firstNumber, secondNumber)) .SetStrategy(new MultiplicationStrategy(firstNumber, secondNumber)) .SetStrategy(new DivisionStrategy(firstNumber, secondNumber)); foreach (var item in context.Execute()) { Console.WriteLine(item); } Console.ReadKey(); }