简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。
简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
// 工厂类
class Factory
{
public static Operation CreateOperate(string operate)
{
Operation oper = null;
switch(operate)
{
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
}
return oper;
}
}
// 运算类
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 = NumberA - NumberB;
return result;
}
}
class OperationMul:Operation
{
public override double GetResult()
{
double result;
result = NumberA * NumberB;
return result;
}
}
class OperationDiv:Operation
{
public override double GetResult()
{
if (NumberB == 0)
throw new Exception("除数不能为零");
double result = NumberA / NumberB;
return result;
}
}
class Program
{
static void Main(string[] args)
{
Operation oper = Factory.CreateOperate("*");
oper.NumberA = 2;
oper.NumberB = 3;
Console.WriteLine("result:" + oper.GetResult());
Console.Read();
}
}