【C#】简单工厂模式

来源:互联网 发布:js div禁止点击 编辑:程序博客网 时间:2024/04/23 19:11
  1. using System;  
  2. // 可维护,可复用,可扩展,灵活性好  
  3. namespace 简单工厂模式  
  4. {  
  5.     // 运算类  
  6.     public class Operation  
  7.     {  
  8.         private double numberA = 0;  
  9.         public double NumberA {  
  10.             get {  
  11.                 return numberA;  
  12.             }  
  13.             set {  
  14.                 numberA = value;  
  15.             }  
  16.         }  
  17.   
  18.   
  19.         private double numberB = 0;  
  20.         public double NumberB {  
  21.             get {  
  22.                 return numberB;  
  23.             }  
  24.             set {  
  25.                 numberB = value;  
  26.             }  
  27.         }  
  28.   
  29.   
  30.         public virtual double GetResult()  
  31.         {  
  32.             double testResult = 0;  
  33.             return testResult;  
  34.         }  
  35.   
  36.   
  37.     }  
  38.   
  39.     // 加法  
  40.     class OperationAdd:Operation  
  41.     {  
  42.         public override double GetResult ()  
  43.         {  
  44.             double addResult = 0;  
  45.             addResult = NumberA + NumberB;  
  46.             return addResult;  
  47.         }  
  48.     }  
  49.   
  50.     // 减法  
  51.     class OperationSub :Operation  
  52.     {  
  53.     public override double GetResult ()  
  54.         {  
  55.             double subResult = 0;  
  56.             subResult = NumberA - NumberB;  
  57.             return subResult;  
  58.         }  
  59.     }  
  60.   
  61.     // 乘法  
  62.     class OperationMul :Operation  
  63.     {  
  64.     public override double GetResult ()  
  65.         {  
  66.             double mulResult = 0;  
  67.             mulResult = NumberA * NumberB;  
  68.             return mulResult;  
  69.         }  
  70.     }  
  71.   
  72.     // 除法  
  73.     class OperationDiv :Operation  
  74.     {  
  75.     public override double GetResult ()  
  76.         {  
  77.             double divResult = 0;  
  78.             divResult = NumberA / NumberB;  
  79.             return divResult;  
  80.         }  
  81.     }  
  82.   
  83.     public class OperationFactory  
  84.     {  
  85.         public static Operation createOperate(string operate)  
  86.         {  
  87.             Operation oper = null;  
  88.             switch (operate) {  
  89.             case "+" :  
  90.             oper = new OperationAdd();  
  91.             break;  
  92.   
  93.             case "-":  
  94.             oper = new OperationSub();  
  95.             break;  
  96.   
  97.             case "*":  
  98.             oper = new OperationMul();  
  99.             break;  
  100.   
  101.             case "/":  
  102.             oper = new OperationDiv();  
  103.             break;  
  104.   
  105.             }  
  106.             return oper;  
  107.         }  
  108.     }  
  109.   
  110.     class MainClass  
  111.     {  
  112.         public static void Main (string[] args)  
  113.         {  
  114.               
  115.             Operation oper;  
  116.             oper = OperationFactory.createOperate("/");  
  117.             oper.NumberA = 12;  
  118.             oper.NumberB = 2;  
  119.             Console.WriteLine (oper.GetResult());  
  120.         }  
  121.     }  
  122. }  
0 0
原创粉丝点击