Пример #1
0
        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));
            }
        }
Пример #2
0
        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
        }
Пример #3
0
        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();
        }