昨天听豪哥说,美女停车,我一想现在美女会开的少之又少,会停的更是少的可怜,有的不服说我会很多种停车技术,谈到停车技术就让我们看看美女们的停车技术吧。
可是问题是不同的美女技术肯定不一样,简单工厂我们可以把Man统一个制造,因为他们有相同的地方,可是停车技术都统一一下来源可能会有反效果,会使停车工厂更麻烦,所以我们用一个外观模式,也就是说不论你技术如何变化万千,我只告诉美女停车,有多少种看是那种美女了。
原型图:
代码如下:
1 class ParkA 2 { 3 public void StopCarA() 4 { 5 Console.WriteLine("A技术停车"); 6 7 } 8 } 9 10 class ParkB 11 { 12 public void StopCarB() 13 { 14 15 Console.WriteLine("B技术停车"); 16 } 17 } 18 19 class ParkC 20 { 21 public void StopCarC() 22 { 23 24 Console.WriteLine("C 技术停车"); 25 } 26 } 27 28 class Face 29 { 30 ParkA pa; 31 ParkB pb; 32 ParkC pc; 33 public Face() 34 { 35 pa = new ParkA(); 36 pb = new ParkB(); 37 pc = new ParkC(); 38 } 39 40 public void StopCarOfOneSkill() 41 { 42 pa.StopCarA(); 43 } 44 45 public void StopCarOfTwoSkill() 46 { 47 pa.StopCarA(); 48 pb.StopCarB(); 49 } 50 public void StopCarOfThreeSkill() 51 { 52 pa.StopCarA(); 53 pb.StopCarB(); 54 pc.StopCarC(); 55 Console.WriteLine("you are clever,我喜欢多才的女生!!!"); 56 } 57 } 58 59 //client 60 static void Main(string[] args) 61 { 62 63 Face fc = new Face(); 64 Console.WriteLine("你是会几种停车技术的美女?"); 65 string strNumberSkill = Console.ReadLine(); 66 do 67 { 68 switch (strNumberSkill) 69 { 70 case "1": 71 fc.StopCarOfOneSkill(); 72 break; 73 case "2": 74 fc.StopCarOfTwoSkill(); 75 break; 76 case "3": 77 fc.StopCarOfThreeSkill(); 78 break; 79 default: 80 break; 81 } 82 strNumberSkill = Console.ReadLine(); 83 } while (! string.IsNullOrEmpty(strNumberSkill) ); 84 85 86 87 }
结果:为了方便写一个do while 一般尽量不要把选择分支放在客户端。