class Operation {
private double num1;
private double num2;
public double Num1
{
get
{
return num1;
}
set
{
num1 = value;
}
}
public double Num2
{
set
{
num2=value;
}
get
{
return num2;
}
}
public virtual double GetResult()
{
double result = 0;
return result;
}
}
class OperationAdd : Operation
{
public override double GetResult()
{
double result = 0;
result = Num1 + Num2;
return result;
}
}
class OperationSub : Operation
{
public override double GetResult()
{
double result = 0;
result = Num1 - Num2;
return result;
}
}
class OperationMul : Operation
{
public override double GetResult()
{
double result = 0;
result = Num1 * Num2;
return result;
}
}
class OperationDiv : Operation
{
public override double GetResult()
{
double result = 0;
result = Num1 / Num2;
return result;
}
}
class OperationFactory
{
public static Operation creatOperate( 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;
}
}
客户端代码:
Operation oper;
oper = OperationFactory.createOperate("+");
oper.Num1 = 1;
oper.Num2 = 2;
double result = oper.GetResult();
本文介绍了一种使用C#语言结合策略模式实现的计算器,该计算器能够通过工厂模式动态选择加减乘除等不同运算策略。代码示例展示了如何定义基本的运算接口及具体的加法、减法、乘法和除法类,并通过一个操作工厂来实例化这些运算对象。
294

被折叠的 条评论
为什么被折叠?



