• C#学习笔记-外观模式


    题目:股民买卖股票

    实现:

     1         static void Main(string[] args)
     2         {
     3             Stock1 gu1 = new Stock1();
     4             Stock2 gu2 = new Stock2();
     5             Stock3 gu3 = new Stock3();
     6             NationalDebt1 nd1 = new NationalDebt1();
     7             Realty1 rt1 = new Realty1();
     8 
     9             gu1.Buy();
    10             gu2.Buy();
    11             gu3.Buy();
    12             nd1.Buy();
    13             rt1.Buy();
    14 
    15             gu1.Sell();
    16             gu2.Sell();
    17             gu3.Sell();
    18             nd1.Sell();
    19             rt1.Sell();
    20 
    21             Console.Read();
    22         }
    23 
    24         /// <summary>
    25         /// 股票
    26         /// </summary>
    27         class Stock1
    28         {
    29             public void Sell()
    30             {
    31                 Console.WriteLine("股票1卖出");
    32             }
    33             public void Buy()
    34             {
    35                 Console.WriteLine("股票1买入");
    36             }
    37         }
    38 
    39         class Stock2
    40         {
    41             public void Sell()
    42             {
    43                 Console.WriteLine("股票2卖出");
    44             }
    45             public void Buy()
    46             {
    47                 Console.WriteLine("股票2买入");
    48             }
    49         }
    50 
    51         class Stock3
    52         {
    53             public void Sell()
    54             {
    55                 Console.WriteLine("股票3卖出");
    56             }
    57             public void Buy()
    58             {
    59                 Console.WriteLine("股票3买入");
    60             }
    61         }
    62 
    63         /// <summary>
    64         /// 国债
    65         /// </summary>
    66         class NationalDebt1
    67         {
    68             public void Sell()
    69             {
    70                 Console.WriteLine("国债1卖出");
    71             }
    72             public void Buy()
    73             {
    74                 Console.WriteLine("国债1买入");
    75             }
    76         }
    77 
    78         /// <summary>
    79         /// 房地产
    80         /// </summary>
    81         class Realty1
    82         {
    83             public void Sell()
    84             {
    85                 Console.WriteLine("房产1卖出");
    86             }
    87 
    88             //买房地产
    89             public void Buy()
    90             {
    91                 Console.WriteLine("房产1买入");
    92             }
    93         }
    View Code

    题目延伸1:对于股民而言,自己需要去了解不同的股票、公司、政策、发展等等各种情况,所以特别难以了解到股票的潜质,这个时候就出现了专业的经理人,他们可以帮助实现投资,用户就完全不需要了解关于股票的各种细节,只需要投资和撤资就好了。

    实现:

      1         static void Main(string[] args)
      2         {
      3             //此时用户不需要了解股票,甚至可以对股票一无所知
      4             //参与股票的具体买卖都由基金公司独立完成
      5             //这样客户端的代码就非常简洁明了
      6             Fund jijin = new Fund();
      7             jijin.Buy();
      8             jijin.Sell();
      9 
     10             Console.Read();
     11         }
     12         
     13         /// <summary>
     14         /// 经理人
     15         /// </summary>
     16         class Fund
     17         {
     18             Stock1 gu1;
     19             Stock2 gu2;
     20             Stock3 gu3;
     21             NationalDebt1 nd1;
     22             Realty1 rt1;
     23 
     24             public Fund()
     25             {
     26                 gu1 = new Stock1();
     27                 gu2 = new Stock2();
     28                 gu3 = new Stock3();
     29                 nd1 = new NationalDebt1();
     30                 rt1 = new Realty1();
     31             }
     32 
     33             public void Buy()
     34             {
     35                 gu1.Buy();
     36                 gu2.Buy();
     37                 gu3.Buy();
     38                 nd1.Buy();
     39                 rt1.Buy();
     40             }
     41 
     42             public void Sell()
     43             {
     44                 gu1.Sell();
     45                 gu2.Sell();
     46                 gu3.Sell();
     47                 nd1.Sell();
     48                 rt1.Sell();
     49             }
     50         }
     51 
     52         class Stock1
     53         {
     54             public void Buy()
     55             {
     56                 Console.WriteLine("buy stock1");
     57             }
     58 
     59             public void Sell()
     60             {
     61                 Console.WriteLine("sell stock1");
     62             }
     63         }
     64 
     65         class Stock2
     66         {
     67             public void Buy()
     68             {
     69                 Console.WriteLine("buy stock2");
     70             }
     71 
     72             public void Sell()
     73             {
     74                 Console.WriteLine("sell stock2");
     75             }
     76         }
     77 
     78         class Stock3
     79         {
     80             public void Buy()
     81             {
     82                 Console.WriteLine("buy stock3");
     83             }
     84 
     85             public void Sell()
     86             {
     87                 Console.WriteLine("sell stock3");
     88             }
     89         }
     90 
     91         class NationalDebt1
     92         {
     93             public void Buy()
     94             {
     95                 Console.WriteLine("buy nationaldebt1");
     96             }
     97 
     98             public void Sell()
     99             {
    100                 Console.WriteLine("sell nationaldebt1");
    101             }
    102         }
    103 
    104         class Realty1
    105         {
    106             public void Buy()
    107             {
    108                 Console.WriteLine("buy realty1");
    109             }
    110 
    111             public void Sell()
    112             {
    113                 Console.WriteLine("sell realty1");
    114             }
    115         }
    View Code

    解析:

    这里也就是所说的外观模式。

    外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    注:文中所有代码及知识点均来自于《大话设计模式》,本人属于边学边看边敲代码边总结的阶段。

  • 相关阅读:
    centos7.3部署memcached服务
    tomcat一闪而过,无法开启
    Windows系统因“CredSSP加密Oracle修正”无法远程连接
    猴子和打字机
    特修斯之船
    爱因斯坦的光线
    10个著名的思想实验(2)
    10个著名的思想实验1
    快速排序
    快速排序的c++实现
  • 原文地址:https://www.cnblogs.com/Aries-rong/p/7611284.html
Copyright © 2020-2023  润新知