深入了解c# 设计模式之简单工厂模式

2020-06-24 11:03:27丽君

这里是工厂化处理

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# 简单工厂模式的资料请关注易采站长站其它相关文章!