static void Main(string[] args) { try { Console.WriteLine("输入数字1"); double num1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("输入运算符"); string opr = Console.ReadLine(); Console.WriteLine("输入数字2"); double num2 = Convert.ToDouble(Console.ReadLine()); //简单工程模式 // Calculate cal = CalculateFactory.CreateOperate(opr); //工厂模式 IoperateFactory opration = new IAddFactory(); Calculate cal = opration.CreateOperate(); cal.Num1 = num1; cal.Num2 = num2; double result = cal.GetResult(); Console.WriteLine(result); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
public static Calculate CreateOperate(string opr) { // Calculate cal = null; IoperateFactory orpfactry = null; switch (opr) { case "+": //cal = new Add(); orpfactry = new IAddFactory(); break; case "-": //cal = new Sub(); orpfactry = new ISubFactory(); break; case "*": //cal = new Mul(); orpfactry = new IMulFactory(); break; case "/": //cal=new Div(); orpfactry = new IDivFactory(); break; default: throw new Exception("运算符不存在"); break; } //return cal; return(orpfactry.CreateOperate()); }