学习 工厂模式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Factory
{
public class Operation
{
double _numberA;
double _numberB;
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()
{
return NumberA + NumberB;
}
}
class OperationSub : Operation
{
public override double getResult()
{
return NumberA - NumberB;
}
}
class OperationMul : Operation
{
public override double getResult()
{
return NumberA * NumberB;
}
}
class OperationDiv : Operation
{
public override double getResult()
{
return NumberA / NumberB;
}
}
public class OperationFactory
{
public static Operation CreateOperate(string operation)
{
Operation oper = null;
switch (operation)
{
case "+":
oper = new OperationAdd();
break;
case "-":
oper = new OperationSub();
break;
case "*":
oper = new OperationMul();
break;
case "/":
oper = new OperationDiv();
break;
}
return oper;
}
}
class Program
{
static void Main(string[] args)
{
string number1;
string number2;
string operater;
Operation oper;
Console.WriteLine("请输入第一位数:");
number1=Console.ReadLine();
Console.WriteLine("请输入第二位数:");
number2=Console.ReadLine();
Console.WriteLine("请输入运算符:");
operater=Console.ReadLine();
oper=OperationFactory.CreateOperate(operater);
oper.NumberA = Convert.ToDouble(number1);
oper.NumberB = Convert.ToDouble(number2);
Console.WriteLine("运算结果为:{0}", oper.getResult());
Console.ReadKey();
}
}
}

浙公网安备 33010602011771号