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(); }
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(); }
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)); }
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)); }
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(); }
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(); }