以下为C#代码
以下代码用简单工厂模式实现对两个数的操作方法(计算器)
namespace 简单工厂模式
{
class Program
{
static void Main(string[] args)
{
//使用方法
Operation operation = OperationFactory.CreateOperation("+");
operation.param1 = 2;
operation.param2 = 4;
Console.WriteLine(operation.GetResult());
Console.ReadKey();
}
/// <summary>
/// 操作类的父类
/// </summary>
public abstract class Operation
{
public double param1 { get; set; }
public double param2 { get; set; }
public abstract double GetResult();
}
//加法
public class AddOperation:Operation
{
public override double GetResult()
{
return param1 + param2;
}
}
//减法
public class MinusOperation:Operation
{
public override double GetResult()
{
return param1 - param2;
}
}
//乘法
public class MulOperation:Operation
{
public override double GetResult()
{
return param1 * param2;
}
}
//除法
public class DelOperation:Operation
{
public override double GetResult()
{
if(param2==0)
{
throw new Exception("除数不能为0");
}
return param1 / param2;
}
}
//工厂类,用来管理所有的操作,并能向外提供访问方法
public class OperationFactory
{
//根据操作符去创建对应的类
public static Operation CreateOperation(string operationName)
{
Operation operation = null;
switch(operationName)
{
case "+":
operation = new AddOperation();
break;
case "-":
operation = new MinusOperation();
break;
case "*":
operation = new MulOperation();
break;
case "/":
operation = new DelOperation();
break;
}
return operation;
}
}
}
}