@#
public class Operation //基类 {private double _numberA = 0;private double _numberB = 0;public double NumberA{get{ return _numberA; }set{_numberA = value;}}public double NumberB{get{ return _numberB; }set{_numberB = value;}}public virtual double GetResult(){double result = 0;return result;}}
##
class OperationAdd:Operation //加法类 {public override double GetResult(){double result = 0;result = NumberA + NumberB;return result;}}class OperationSub:Operation //减法类 {public override double GetResult(){double result = 0;result = NumberA - NumberB;return result;}}
##
public class OperationFactory //工厂类 {public static Operation CreateOperate(string operate){Operation oper = null;switch(operate){case "+":oper = new OperationAdd();break;case "-":oper = new OperationSub();break; }return oper;}}
##
class Program //前台代码 {static void Main(string[] args) {Operation oper = OperationFactory.CreateOperate("+");oper.NumberA = 20;oper.NumberB = 80;double result = oper.GetResult();Console.WriteLine(result);}}