zoukankan      html  css  js  c++  java
  • 设计模式-外观模式

    昨天听豪哥说,美女停车,我一想现在美女会开的少之又少,会停的更是少的可怜,有的不服说我会很多种停车技术,谈到停车技术就让我们看看美女们的停车技术吧。

    可是问题是不同的美女技术肯定不一样,简单工厂我们可以把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 一般尽量不要把选择分支放在客户端。

  • 相关阅读:
    前台开发——处理用户密码登录的修改功能
    前台开发——处理用户收货信息的修改
    Max Sum -- hdu -- 1003
    (深搜)Oil Deposits -- hdu -- 1241
    (博弈 sg入门2)
    (博弈 sg入门)kiki's game -- hdu -- 2147
    (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846
    (全排列)Ignatius and the Princess II -- HDU -- 1027
    (模拟)Arithmetic Sequence -- HDU -- 5400
    (字符串 键盘转换)Convert QWERTY to Dvorak -- zoj -- 5526
  • 原文地址:https://www.cnblogs.com/ants_double/p/5488634.html
Copyright © 2011-2022 走看看