Пример #1
0
        static void Main(string[] args)
        {
            var additionStrategy = new AdditionStrategy();
            var calculator       = new PrimitiveCalculator(additionStrategy);

            string line;

            while ((line = Console.ReadLine()) != "End")
            {
                var tokens = line.Split();
                if (tokens[0] == "mode")
                {
                    var       @operator = char.Parse(tokens[1]);
                    IStrategy strategy  = CreateStrategy(additionStrategy, @operator);
                    calculator.ChangeStrategy(strategy);
                }
                else
                {
                    var leftOperand  = int.Parse(tokens[0]);
                    var rightOperand = int.Parse(tokens[1]);
                    var result       = calculator.PerformCalculation(leftOperand, rightOperand);
                    Console.WriteLine(result);
                }
            }
        }
Пример #2
0
        private static IStrategy CreateStrategy(AdditionStrategy additionStrategy, char @operator)
        {
            IStrategy strategy = null;

            switch (@operator)
            {
            case '+':
                strategy = additionStrategy;
                break;

            case '-':
                strategy = new SubtractionStrategy();
                break;

            case '*':
                strategy = new MultiplicationStrategy();
                break;

            case '/':
                strategy = new DivisionStrategy();
                break;
            }

            return(strategy);
        }