Exemple #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();
        }
Exemple #2
0
        public static void Demo()
        {
            Context c = new Context(new OperationAdd());

            Console.WriteLine(c.ExecuteStrategy(1, 2));
            c = new Context(new OperationSub());
            Console.WriteLine(c.ExecuteStrategy(1, 2));
            Console.Read();
        }
Exemple #3
0
        private static void Main(string[] args)
        {
            Context context = new Context(new OperationAdd());
            Console.WriteLine("10 + 5 = " + context.ExecuteStrategy(10, 5));

            context = new Context(new OperationSubtract());
            Console.WriteLine("10 - 5 = " + context.ExecuteStrategy(10, 5));

            context = new Context(new OperationMultiply());
            Console.WriteLine("10 * 5 = " + context.ExecuteStrategy(10, 5));
        }
Exemple #4
0
        static void Main()
        {
            Context context = new Context(new OperationAdd());

            Console.WriteLine("10 + 5 = " + context.ExecuteStrategy(10, 5));

            context = new Context(new OperationSubstract());
            Console.WriteLine("10 - 5 = " + context.ExecuteStrategy(10, 5));

            context = new Context(new OperationMultiply());
            Console.WriteLine("10 * 5 = " + context.ExecuteStrategy(10, 5));
        }
Exemple #5
0
		static void Main(string[] args) {

			Context context;

			// Three contexts following different strategies
			context = new Context(new AddStrategy());
			var resultA = context.ExecuteStrategy(3, 4);
			Console.WriteLine(resultA);

			context = new Context(new SubstractStrategy());
			var resultB = context.ExecuteStrategy(3, 4);
			Console.WriteLine(resultB);

			context = new Context(new MultiplyStrategy());
			var resultC = context.ExecuteStrategy(3, 4);
			Console.WriteLine(resultC);

			Console.ReadKey();
		}
        public MainWindow()
        {
            InitializeComponent();
            this.Height           = 650;
            this.Width            = 725;
            this.GuiUC.DefineText = "In Strategy pattern, a class behavior or its algorithm can be changed at run time";

            StringBuilder stringBuilder = new StringBuilder();
            Context       context       = new Context(new OperationAdd());

            stringBuilder.Append(string.Format("10 + 5 = {0}", context.ExecuteStrategy(10, 5)) + "\n");

            context = new Context(new OperationSubstract());
            stringBuilder.Append(string.Format("5 - 3 = {0}", context.ExecuteStrategy(3, 5)) + "\n");

            context = new Context(new OperationMultiply());
            stringBuilder.Append(string.Format("10 * 5 = {0}", context.ExecuteStrategy(10, 5)) + "\n");

            this.GuiUC.TextBlockText = stringBuilder.ToString();
        }
Exemple #7
0
        private static void Main(string[] args)
        {
            Context context;

            // Three contexts following different strategies
            context = new Context(new AddStrategy());
            var resultA = context.ExecuteStrategy(3, 4);

            Console.WriteLine(resultA);

            context = new Context(new SubstractStrategy());
            var resultB = context.ExecuteStrategy(3, 4);

            Console.WriteLine(resultB);

            context = new Context(new MultiplyStrategy());
            var resultC = context.ExecuteStrategy(3, 4);

            Console.WriteLine(resultC);

            Console.ReadKey();
        }