Ejemplo n.º 1
0
        static void Main()
        {
            // The client code picks a concrete strategy and passes it to the context.
            // The client should be aware of the differences between strategies in order to make the right choice.
            Context context = new Context();
            object  data    = new object();

            context.SetData(data);

            // Select strategy
            int strategyNumber = new Random().Next(1, 3);

            switch (strategyNumber)
            {
            case 1:
                context.SetStrategy(new ConcreteStrategy1());
                break;

            case 2:
            default:
                context.SetStrategy(new ConcreteStrategy2());
                break;
            }

            // Execute strategy
            context.ExecuteStrategy();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var context = new Context();

            // use strategyA to do something
            context.SetStrategy(new StrategyA());
            context.DoSomethingWithStrategy();

            // use strategyB to do something;
            context.SetStrategy(new StrategyB());
            context.DoSomethingWithStrategy();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            Context cntx = new Context();

            cntx.SetStrategy(new AdditionStrategy());
            Console.WriteLine(cntx.calculate(10, 5));

            cntx.SetStrategy(new SubtractionStrategy());
            Console.WriteLine(cntx.calculate(10, 5));

            Console.ReadKey();
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var context = new Context();

            Console.WriteLine("Client: Strategy is set to normal sorting.");
            context.SetStrategy(new ConcreteStrategyA());
            context.DoBusinessLogic();

            Console.WriteLine();

            Console.WriteLine("Client: Strategy is set to reverse sorting.");
            context.SetStrategy(new ConcreteStrategyB());
            context.DoBusinessLogic();
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Context context = new Context();

            Console.WriteLine("Client: Strategy is set to normal sorting.");
            context.SetStrategy(new ConcreteStrategy());
            context.DoSomeBusinessLogic();

            Console.WriteLine();

            Console.WriteLine("Client: Strategy is set to reverse sorting.");
            context.SetStrategy(new ConcreteStrategyRight());
            context.DoSomeBusinessLogic();

            Console.Read();
        }
Ejemplo n.º 6
0
        public static void Main()
        {
            Context context = new Context(new ConcreteStrategy1());

            context.ExecuteOperation();
            context.SetStrategy(new ConcreteStrategy2());
            context.ExecuteOperation();
        }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            // Клиентский код выбирает конкретную стратегию и передаёт её в
            // контекст. Клиент должен знать о различиях между стратегиями,
            // чтобы сделать правильный выбор.
            var context = new Context();

            Console.WriteLine("Client: Strategy is set to normal sorting.");
            context.SetStrategy(new ConcreteStrategyA());
            context.DoSomeBusinessLogic();

            Console.WriteLine();

            Console.WriteLine("Client: Strategy is set to reverse sorting.");
            context.SetStrategy(new ConcreteStrategyB());
            context.DoSomeBusinessLogic();
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            //Instancia o Context
            var context = new Context();

            Console.WriteLine("Client: Strategy is set to normal sorting,");
            //Aplica a estratégia
            context.SetStrategy(new ConcreteStrategyA());
            //Corre a estragégia e retorna o resultado
            context.Operation();

            Console.WriteLine();
            Console.WriteLine("Client: Change strategy for reverse");
            context.SetStrategy(new ConcreteStrategyB());
            context.Operation();
            Console.ReadLine();
        }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            // The client code picks a concrete strategy and passes it to the
            // context. The client should be aware of the differences between
            // strategies in order to make the right choice.
            var context = new Context();

            Console.WriteLine("Client: Strategy is set to normal sorting.");
            context.SetStrategy(new ConcreteStrategyA());
            context.DoSomeBusinessLogic();

            Console.WriteLine();

            Console.WriteLine("Client: Strategy is set to reverse sorting.");
            context.SetStrategy(new ConcreteStrategyB());
            context.DoSomeBusinessLogic();
        }
Ejemplo n.º 10
0
        public static void Main()
        {
            Context context = new Context(new ConcreteStrategy1());            
            context.ExecuteOperation();
            
            context.SetStrategy(new ConcreteStrategy2());
            context.ExecuteOperation();

            Console.ReadKey();
        }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            Context context = new Context(new ConcreteStrategy1());

            context.ExecuteOperation();
            context.SetStrategy(new ConcreteStrategy2());
            context.ExecuteOperation();

            Console.ReadLine();
        }
Ejemplo n.º 12
0
        static void Main()
        {
            var context = new Context(new ConcreteStrategyA());

            context.Execute();

            context.SetStrategy(new ConcreteStrategyB());
            context.Execute();

            Console.ReadKey();
        }
Ejemplo n.º 13
0
        public static void Main()
        {
            SetTitle();
            Write("Welcome");

            var strat1  = new StrategyA();
            var strat2  = new StrategyB();
            var context = new Context();

            context.SetStrategy(strat1);
            context.Execution();

            context.SetStrategy(strat2);
            context.Execution();

            if (Debugger.IsAttached)
            {
                Console.ReadLine();
            }
        }
Ejemplo n.º 14
0
        private static void Main()
        {
            var context = new Context();

            Console.WriteLine("Setting Strategy to LowestCost");
            context.SetStrategy(new LowestCostStrategy());
            context.FindBestTravelOption();
            Console.WriteLine();

            Console.WriteLine("Setting Strategy to ShortestTravel");
            context.SetStrategy(new ShortestTravelStrategy());
            context.FindBestTravelOption();
            Console.WriteLine();

            Console.WriteLine("Setting Strategy to CostEfficient");
            context.SetStrategy(new CostEffectiveStrategy());
            context.FindBestTravelOption();
            Console.WriteLine();

            Console.WriteLine("Press Any Key to Quit");
            Console.ReadKey();
        }
Ejemplo n.º 15
0
        static void Main(string[] args)
        {
            Context          context  = new Context();
            var              name     = ConfigurationManager.AppSettings["Strategy"];
            AbstractStrategy strategy = (AbstractStrategy)Assembly.Load("Strategy").CreateInstance(name);

            context.SetStrategy(strategy);
            List <int> array = new List <int>()
            {
                1, 3, 5, 7, 9, 11, 13
            };

            array.ForEach(it => Console.Write($"{it} "));
            var result = context.CalcIntArray(array);

            Console.WriteLine("\n结果为:" + result);
            Console.Read();
        }