这里是工厂化处理
public class SimpleFactory
{
public Calculator GetOperation(string operatorName)
{
switch (operatorName)
{
case "Minus":
return new Minus();
case "Plus":
return new Plus();
case "Multiply":
return new Multiply();
case "Divide":
return new Divide();
default:
throw new Exception("当前未提供此计算方式");
}
}
}
调用
class Program
{
static void Main(string[] args)
{
SimpleFactory simpleFactory = new SimpleFactory();
Dictionary<string,string> optionsDictionary = new Dictionary<string, string>
{
{ "A","Plus"},
{ "B","Minus"},
{ "C","Multiply"},
{ "D","Divide"},
};
string readOptions = string.Empty;
do
{
foreach (KeyValuePair<string, string> keyValuePair in optionsDictionary)
{
Console.WriteLine(keyValuePair.Key+"、"+keyValuePair.Value);
}
Console.WriteLine("请输入A、B、C、D确定计算方式");
string option = Console.ReadLine();
if (!optionsDictionary.ContainsKey(option))
{
throw new Exception("当前未提供此计算方式");
}
Console.WriteLine("请输入第一个数");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入第二个数");
int b = Convert.ToInt32(Console.ReadLine());
Calculator calculator = simpleFactory.GetOperation(optionsDictionary[option]);
Console.WriteLine("当前结果是:"+calculator.Operate(a, b));
Console.WriteLine("继续请按Y");
readOptions = Console.ReadLine();
} while (readOptions == "Y");
}
}
下面是输出结果
A、Plus
B、Minus
C、Multiply
D、Divide
请输入A、B、C、D确定计算方式
A
请输入第一个数
1
请输入第二个数
5
当前结果是:6
继续请按Y
Y
A、Plus
B、Minus
C、Multiply
D、Divide
请输入A、B、C、D确定计算方式
C
请输入第一个数
9
请输入第二个数
2
当前结果是:18
继续请按Y
以上就是深入了解c# 设计模式之简单工厂模式的详细内容,更多关于c# 简单工厂模式的资料请关注易采站长站其它相关文章!










