工厂模式:所有的对象,都用一个对象去创造
public class Operation
{
private double number1 = 0;
private double number2 = 0;
public double Number1
{
get { return number1; }
set { number1 = value; }
}
public double Number2
{
get { return number2; }
set { number2 = value; }
}
public virtual double GetResult()
{
double result = 0;
return result;
}
}
//加法
class OpertionAdd : Operation
{
public override double GetResult()
{
double result = 0;
return result=Number1 + Number2;
}
}
//减法
class OperationSub : Operation
{
public override double GetResult()
{
double result = 0;
return result = Number1 - Number2;
}
}
//乘法
class OperationMul : Operation
{
public override double GetResult()
{
double result = 0;
return result = Number1 * Number2;
}
}
//除法
class OperationDiv : Operation
{
public override double GetResult()
{
double result = 0;
if (Number2 == 0)
{
throw new System.Exception("除数不能为0。");
}
else
{
return result = Number1 / Number2;
}
}
}
public class OperationFactory
{
public static Operation CreateOperation(string operate)
{
Operation oper = null;
switch (operate)
{
case "+":
oper = new OpertionAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
}
return oper;
}
}
//客户端代码
class MainScrip
{
Operation oper;
oper=OperationFactory.CreateOperation("+");
oper.Number1=1;
oper.Number2=2;
double result = oper.GetResult();
}