题目:股民买卖股票
实现:
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 }
题目延伸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 }
解析:
这里也就是所说的外观模式。
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
注:文中所有代码及知识点均来自于《大话设计模式》,本人属于边学边看边敲代码边总结的阶段。