亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

設計模式之簡單工廠模式

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 }

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品一区在线观看香蕉| 国产精品欧美激情| 欧美日韩国产专区| 国产成人一区二区三区| 国产精品黄色影片导航在线观看| 亚洲欧美国产另类| 成人免费视频xnxx.com| 国产亚洲精品va在线观看| 久热国产精品视频| 久久亚洲国产精品成人av秋霞| 成人激情视频在线播放| 日韩精品亚洲元码| 日韩高清免费观看| 欧美在线视频a| 久久精品国产久精国产思思| 91免费看视频.| 久久久www成人免费精品张筱雨| 青青精品视频播放| 91免费在线视频| 国产一区二区三区丝袜| 国产一区二区三区精品久久久| 久久久91精品国产| 欧美精品制服第一页| 日韩中文在线观看| 亚洲欧美日韩天堂一区二区| 国产在线精品成人一区二区三区| 亚洲精美色品网站| 宅男66日本亚洲欧美视频| 久久精品91久久久久久再现| 国产精品免费看久久久香蕉| 亚洲天堂成人在线视频| 久久国产精品99国产精| 亚洲第一区中文字幕| 亚洲第一区第一页| 欧美性xxxx极品hd欧美风情| 欧美在线精品免播放器视频| 久久精品国产一区| 午夜剧场成人观在线视频免费观看| 国产一区二区三区毛片| 亚洲国产成人久久综合| 国产91精品在线播放| 亚洲国产天堂久久综合| 午夜精品一区二区三区在线视| 欧美日韩国产一中文字不卡| 第一福利永久视频精品| 亚洲色图偷窥自拍| 国产精品毛片a∨一区二区三区|国| 亚洲精品91美女久久久久久久| 国模gogo一区二区大胆私拍| 国产亚洲精品日韩| 欧美性高潮床叫视频| 欧美激情亚洲精品| 国产成人av网| 欧美日本啪啪无遮挡网站| 欧美亚洲成人xxx| 亚洲成人av在线| 久久综合伊人77777| 久久久久久18| 亚洲精品国产精品乱码不99按摩| 国产精品精品视频一区二区三区| 久久久久久久久国产精品| 久久久久久久久久久久av| 亚洲精品v天堂中文字幕| 国产精品极品在线| 日本欧美黄网站| 久久久久久久久网站| 国产91精品高潮白浆喷水| 国产在线精品一区免费香蕉| 亚洲国产欧美一区二区三区久久| 这里只有精品在线观看| 国产精品第8页| 欧美在线日韩在线| 亚洲福利小视频| 国产精品欧美日韩久久| 国产精品成人一区二区三区吃奶| 日本精品免费一区二区三区| 欧美激情一二区| 日韩少妇与小伙激情| 亚洲精品中文字幕女同| 亚洲欧美日韩图片| 97碰碰碰免费色视频| 国产精品99久久久久久久久| 久久av在线播放| 亚洲欧美国产高清va在线播| 亚洲国产精品va在看黑人| 国产一区二区三区在线视频| 久久久伊人日本| 国产精品香蕉国产| 91久久久久久久久久| 欧美日韩国产在线| 久久久免费av| 在线观看久久久久久| 日韩欧美高清在线视频| 国产在线视频2019最新视频| 最近2019年好看中文字幕视频| 亚洲欧美综合精品久久成人| 91精品视频在线播放| 亚洲在线视频福利| 一区二区三区在线播放欧美| 国产精品夜色7777狼人| 中国人与牲禽动交精品| 久久九九热免费视频| 国产精品视频一区国模私拍| 亚洲精品www久久久| 91亚洲国产成人精品性色| 日韩三级成人av网| 在线午夜精品自拍| 国产免费一区二区三区在线能观看| 91久久综合亚洲鲁鲁五月天| 久久免费观看视频| 欧美在线一区二区视频| 亚洲护士老师的毛茸茸最新章节| 久久久在线视频| 91精品国产成人| 国产精品中文字幕在线观看| 98精品在线视频| 欧美性理论片在线观看片免费| 91在线观看免费高清完整版在线观看| 日韩成人av在线| 欧美中文字幕在线| 国产免费一区二区三区在线观看| 中文字幕av一区中文字幕天堂| 美女啪啪无遮挡免费久久网站| 国产欧美日韩专区发布| 91精品综合久久久久久五月天| 久久久久久久久久久免费精品| 亚洲精品少妇网址| 久久不射热爱视频精品| 91成人在线播放| 久久影院在线观看| 宅男66日本亚洲欧美视频| 国产成人综合av| 国产色综合天天综合网| 亚洲第一精品久久忘忧草社区| 97超碰蝌蚪网人人做人人爽| 亚洲成人a**站| 狠狠色狠狠色综合日日五| 亚洲欧美国产精品| 51午夜精品视频| 91精品国产高清| 亚洲国产欧美在线成人app| 日韩专区在线播放| 欧美天堂在线观看| 久久精品中文字幕一区| 国产91成人在在线播放| 日韩精品在线影院| 精品国产乱码久久久久久天美| 亚洲国产成人91精品| 国产一区二区丝袜高跟鞋图片| 在线观看国产精品91| 日韩电影在线观看中文字幕| 欧美日韩国产一区二区三区| 亚洲国产精品va在看黑人| 欧美华人在线视频| 亚洲精品国产品国语在线| 久久久国产影院| 91精品国产91久久久久久最新| 国产精品成人国产乱一区| 亚洲一区二区日本| 69国产精品成人在线播放| 精品一区二区三区四区在线| 欧美性xxxx在线播放| 久久999免费视频| 国内外成人免费激情在线视频网站|