设计模式--简单工厂模式
当今社会高福帅的男生是女的选择的标准,可是不是所有的男生都是如此完美,所以萝卜白菜各有所爱,不同的女生来选择不同的男友时的标准也不尽量相同,怎么样写一个程序来尽量可 能适应多的女生使用呢。
男生种类很多不可让一次列出来完,也就是平时的需求变化比较大,怎么能更好的适应变化。
所以我们要建立一个造男生的工厂,你只要给我条件我就能给你造出来相应的男生,你只要想要我就给你。
如下图:
代码如下:
1 //Man 2 abstract public class Man 3 { 4 public abstract void Show(); 5 } 6 //SmartMan 7 class SmartMan:Man 8 { 9 public override void Show() 10 { 11 // base.Show(); 12 Console.WriteLine("这是一个帅哥"); 13 } 14 } 15 //PoorMan 16 class PoorMan:Man 17 { 18 public override void Show() 19 { 20 // throw new NotImplementedException(); 21 Console.WriteLine("这是一个三无青年,请不要选择"); 22 } 23 } 24 //MoneyMan 25 class MoneyMan:Man 26 { 27 public override void Show() 28 { 29 //base.Show(); 30 Console.WriteLine("这是一个富豪"); 31 } 32 } 33 //HighMan 34 class HighMan:Man 35 { 36 public override void Show() 37 { 38 //base.Show(); 39 Console.WriteLine("这是一个高大的男生"); 40 } 41 } 42 //ManFactory 43 class ManFactory 44 { 45 public static Man CreateManOperation(string strCondition) 46 { 47 Man mTemp = null; 48 switch (strCondition) 49 { 50 case "high": 51 mTemp = new HighMan(); 52 break; 53 case "money": 54 mTemp = new MoneyMan(); 55 break; 56 case "smart": 57 mTemp = new SmartMan(); 58 break; 59 case "poor": 60 mTemp = new PoorMan(); 61 break; 62 63 default: 64 break; 65 } 66 return mTemp; 67 } 68 } 69 //client 70 class Program 71 { 72 static void Main(string[] args) 73 { 74 string strCondition = Console.ReadLine(); 75 do 76 { 77 78 Man m_man = ManFactory.CreateManOperation(strCondition); 79 m_man.Show(); 80 strCondition = Console.ReadLine(); 81 } while (!string.IsNullOrEmpty(strCondition)); 82 83 Console.ReadLine(); 84 } 85 }
结果如图:
作者:Ants_double
出处:https://www.cnblogs.com/ants_double/
本文版权归作者和博客园所有,欢迎转载。转载请在留言板处留言给我,且在文章标明原文链接,谢谢!
如果您觉得本篇博文对您有所收获,觉得我还算用心,请点击右下角的 [大拇指],谢谢!