麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

設計模式之簡單工廠模式

2019-11-14 13:49:36
字體:
來源:轉載
供稿:網友

  本程序分為三個部分:業務邏輯,頁面邏輯,生產對象的工廠

一、業務邏輯:

  1. Operation類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace SimpleFactory.Caculation_bll 7 { 8     /// <summary> 9     /// 所有具體策略類的父類10     /// </summary>11     public class Operation12     {13         PRivate double numberA;14 15         public double NumberA16         {17             get { return numberA; }18             set { numberA = value; }19         }20 21         private double numberB;22 23         public double NumberB24         {25             get { return numberB; }26             set { numberB = value; }27         }28 29         //所有具體策略類的共同方法30         public virtual double GetResult()31         {32             double result = 0;33             return result;34         }35     }36 }

  2. AddOperation類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace SimpleFactory.Caculation_bll 7 { 8     /// <summary> 9     /// 加法運算的具體實現類10     /// </summary>11     class AddOperation:Operation12     {13         /// <summary>14         /// 加法運算的具體實現15         /// </summary>16         /// <returns>加法運算結果</returns>17         public override double GetResult()18         {19             return NumberA + NumberB;20         }21     }22 }

   3. SubOperation類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace SimpleFactory.Caculation_bll 7 { 8     /// <summary> 9     /// 減法運算的具體實現類10     /// </summary>11     class SubOperation:Operation12     {13         /// <summary>14         /// 減法運算的具體實現15         /// </summary>16         /// <returns>減法運算結果</returns>17         public override double GetResult()18         {19             return NumberA - NumberB;20         }21     }22 }

  4. MulOperation類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace SimpleFactory.Caculation_bll 7 { 8     /// <summary> 9     /// 乘法運算的具體實現類10     /// </summary>11     class MulOperation:Operation12     {13         /// <summary>14         /// 乘法運算的具體實現15         /// </summary>16         /// <returns>乘法運算結果</returns>17         public override double GetResult()18         {19             return NumberA * NumberB;20         }21     }22 }

  5. DivOperation類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using SimpleFactory.Caculation_ui; 6  7 namespace SimpleFactory.Caculation_bll 8 { 9     /// <summary>10     /// 除法運算的具體實現類11     /// </summary>12     class DivOperation : Operation13     {14         /// <summary>15         /// 除法運算的具體實現16         /// </summary>17         /// <returns>除法運算結果</returns>18         public override double GetResult()19         {20             //排除除數為0的情況21             if (NumberB==0)22             {23                 return 0;24             }25             26             return NumberA / NumberB;27         }28     }29 }

二、頁面邏輯

  1. AchieveDouble類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace SimpleFactory.Caculation_ui 7 { 8     /// <summary> 9     /// 獲取參與運算的數字10     /// </summary>11     public class AchieveDouble12     {13         //用于計獲取了多少個數字14         private static int count = 0;15 16         /// <summary>17         /// 獲取參與運算的數字18         /// </summary>19         /// <returns>參與運算的數字</returns>20         public static double GetFromConsoleAchieveDouble()21         {22             double number;23             Console.WriteLine("請輸入第{0}個數字:",count+1);24             do25             {26                 double temp; //中間變量27                 try28                 {29                     temp = Convert.ToDouble(Console.ReadLine());30                 }31                 catch (Exception)32                 {33                     Console.WriteLine("請剛剛輸入有誤,請重新輸入第{0}個數字:",count+1);34                     continue;35                 }36 37                 number = temp;38                 break;39 40             } while (true);41             count++;42             return number;43         }44     }45 }

   2. AchieveOperator類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5  6 namespace SimpleFactory.Caculation_ui 7 { 8     /// <summary> 9     /// 獲取運算符10     /// </summary>11     class AchieveOperator12     {13         public static string GetFromConsoleOperator()14         {15             string oper;16             Console.WriteLine("請輸入運算字符:");17             do18             {19                 string temp = Console.ReadLine();20                 if (temp != "+" && temp != "-" && temp != "*" && temp != "/")21                 {22                     Console.WriteLine("你剛剛輸入有誤,請重新輸入運算字符:");23                     continue;24                 }25 26                 oper = temp;27             } while (true);28             return oper;29         }30     }31 }

  3. Caculation類

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using SimpleFactory.Caculation_bll; 6 using SimpleFactory.Caculation_factory; 7  8 namespace SimpleFactory.Caculation_ui 9 {10     class Caculation11     {12         static void Main(string[] args)13         {14             double numberA = AchieveDouble.GetFromConsoleAchieveDouble(); //獲取第一個數字15             double numberB = AchieveDouble.GetFromConsoleAchieveDouble(); //獲取第二個數字16             string oper = AchieveOperator.GetFromConsoleOperator(); //獲取運算符17 18             Operation operation = Factory.GetInstance(oper);19             operation.NumberA = numberA;20             operation.NumberB = numberB;21             double result = operation.GetResult();22 23             Console.WriteLine("{0} {1} {2} = {3}",numberA,oper,numberB,result);24         }25     }26 }

三、生成對象的工廠

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using SimpleFactory.Caculation_bll; 6  7 namespace SimpleFactory.Caculation_factory 8 { 9     /// <summary>10     /// 生成對象的工廠11     /// </summary>12     public class Factory13     {14         /// <summary>15         /// 生成對象的工廠16         /// </summary>17         /// <param name="oper">傳輸的運算符號</param>18         /// <returns>參與運算的對象</returns>19         public static Operation GetInstance(string oper)20         {21             Operation operation = null;22             switch (oper)23             {   24                 case "+":25                     operation = new AddOperation(); //實例加法對象26                     break;27                 case "-":28                     operation = new SubOperation(); //實例減法對象29                     break;30                 case "*":31                     operation = new MulOperation(); //實例乘法對象32                     break;33                 case "/":34                     operation = new DivOperation(); //實例除法對象35                     break;36             }37             return operation;38         }39     }40 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久免费电影 | 久草在线观看首页 | 欧美国产一区二区三区激情无套 | 免费观看视频91 | 国产精品免费成人 | 亚洲一区免费观看 | 久久艹艹艹 | 91中文字幕在线观看 | 国产91精品久久久久久久 | 成年性羞羞视频免费观看 | 国产a一级片 | 91美女福利视频 | 亚洲午夜久久久久 | 国产午夜精品一区二区三区不卡 | 精品国产91一区二区三区 | 欧美一级毛片特黄黄 | 日日夜av | 99精品视频久久精品视频 | 伊人午夜视频 | 斗罗破苍穹在线观看免费完整观看 | 久久久久电影网站 | 亚洲小视频在线观看,com | 国产精品观看在线亚洲人成网 | 欧美在线中文字幕 | 激情大乳女做爰办公室韩国 | 久久97超碰 | 日本在线播放一区二区三区 | 未成年人在线观看 | 一级电影免费 | 精品国产一区二区三区久久久狼牙 | 国产宾馆3p国语对白 | 成人小视频免费在线观看 | 欧美一级做一级爱a做片性 久久久资源网 | 黄在线看 | 视频一区 中文字幕 | 成人在线观看地址 | 国产流白浆高潮在线观看 | 精品中文字幕在线播放 | 免费国产成人高清在线看软件 | 欧美性生交xxxxx久久久缅北 | 久久久亚洲欧美综合 |