简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
从设计模式类型上来说,简单工厂模式属于创建型模式,又叫静态工厂方法模式(Static Factory Method)。

简单工厂类:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。
运算类:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
加法类、乘法类(...):是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。
//简单工厂类
public class OpreateFactory
{
public static Operation createOprate(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;
}
}
//运算类
public class Operation
{
public double NumberA
{
get;
set;
}
public double NumberB
{
get;
set;
}
public virtual double GetResult()
{
return 0;
}
}
//加法类
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)
return NumberA / NumberB;
else
return 0;
}
}
//客户端
Operation oper;
oper=OperationFactory.createOperation("+");
oper.NumberA=1;
oper.NumberB=2;
double result=oper.GetResult();
浙公网安备 33010602011771号