用一个单独的类来负责实例化不同的对象。
public abstract class Operation
{
public double NumA;
public double NumB;
public abstract double GetResult();
}
public class AddOperationSampleFactory : Operation
{
public override double GetResult()
{
return base.NumA + base.NumB;
}
}
public class SubOperationSampleFactory : Operation
{
public override double GetResult()
{
return base.NumA - base.NumB;
}
}
// 简单工厂
public class OperationSampleFactory
{
public static Operation CreateOperation(string oper)
{
Operation operation = null;
switch(oper)
{
case "+" :
oper = new AddOperationSampleFactory();
break;
case "-" :
oper = new SubOperationSampleFactory();
break;
default :
break;
}
}
}
static void Main(string[] args)
{
// 简单工厂
var oper = OperationSampleFactory.CreateOperation("+");
oper.NumA = 1;
oper.NumB = 2;
oper.GetResult();
Console.Read();
}
原文:https://www.cnblogs.com/caiyangcc/p/13034186.html