public static void Main()
Console.WriteLine("Hello World");
CalculateClient minusClient = new CalculateClient(new Minus());
Console.Write("<br />Minus: " + minusClient.Calculate(7, 1).ToString());
CalculateClient plusClient = new CalculateClient(new Plus());
Console.Write("<br />Plus: " + plusClient.Calculate(7, 1).ToString());
Singleton s1 = Singleton.GetInstance();
Singleton s2 = Singleton.GetInstance();
Console.WriteLine("Objects are the same instance");
public interface ICalculate
int Calculate(int value1, int value2);
public int Calculate(int value1, int value2)
public int Calculate(int value1, int value2)
private ICalculate calculateStrategy;
public CalculateClient(ICalculate strategy)
calculateStrategy = strategy;
public int Calculate(int value1, int value2)
return calculateStrategy.Calculate(value1, value2);
private static Singleton _instance;
public static Singleton GetInstance()
_instance = new Singleton();