标签:
namespace SimleFactory
{
public class Operation
{
public double NumberA { get; set; }
public double NumberB { get; set; }
public virtual double GetResult()
{
double result = 0;
return result;
}
}
public class OperationAdd:Operation
{
public override double GetResult()
{
return NumberA + NumberB;
}
}
public class OperationSub : Operation
{
public override double GetResult()
{
return NumberA - NumberB;
}
}
public class OperationMul : Operation
{
public override double GetResult()
{
return NumberA * NumberB;
}
}
public class OperationDiv : Operation
{
public override double GetResult()
{
if (NumberB == 0)
throw new Exception("除数不能为0.");
return NumberA / NumberB;
}
}
public class OperationFactory
{
public static Operation CreateOperation(string operate)
{
Operation oper = null;
switch(operate)
{
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationAdd();
break;
case "*":
oper = new OperationAdd();
break;
case "/":
oper = new OperationAdd();
break;
}
return oper;
}
}
}
测试代码:
Operation oper = OperationFactory.CreateOperation("+"); oper.NumberA = 1; oper.NumberB = 2; double result= oper.GetResult(); Assert.AreEqual(result, 3);
标签:
原文地址:http://www.cnblogs.com/uptothesky/p/5252893.html