外观模式(Facade)
定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
举例:新股民在没有足够了解证劵知识的情况下去做股票,很容易亏钱,毕竟其不具备股票的相关知识。然而,如果股民将资金交由专业的经理人进行管理,那就不需要参与股票的具体买和卖,完全由基金公司完成即可。
投资基金代码如下:
namespace _12._3_投资基金代码 { //具体股票、国债、房产类 //股票1 class Stock1 { //卖股票 public void Sell() { Console.WriteLine(" 股票1卖出"); } //买股票 public void Buy() { Console.WriteLine(" 股票1买入"); } } //股票2 class Stock2 { //卖股票 public void Sell() { Console.WriteLine(" 股票2卖出"); } //买股票 public void Buy() { Console.WriteLine(" 股票2买入"); } } //股票3 class Stock3 { //卖股票 public void Sell() { Console.WriteLine(" 股票3卖出"); } //买股票 public void Buy() { Console.WriteLine(" 股票3买入"); } } //国债1 class NationalDebt1 { //卖国债 public void Sell() { Console.WriteLine(" 国债1卖出"); } //买国债 public void Buy() { Console.WriteLine(" 国债1买入"); } } //房地产1 class Realty1 { //卖房地产 public void Sell() { Console.WriteLine(" 房产1卖出"); } //买房地产 public void Buy() { Console.WriteLine(" 房产1买入"); } } //基金类如下 //基金类,它需要了解所有的股票或其他投资方式的方法或属性,进行组合,以备外界调用。 class Fund { Stock1 gu1; Stock2 gu2; Stock3 gu3; NationalDebt1 nd1; Realty1 rt1; public Fund() { gu1 = new Stock1(); gu2 = new Stock2(); gu3 = new Stock3(); nd1 = new NationalDebt1(); rt1 = new Realty1(); } public void BuyFund() { gu1.Buy(); gu2.Buy(); gu3.Buy (); nd1.Buy (); rt1.Buy (); } public void SellFund() { gu1.Sell(); gu2.Sell(); gu3.Sell(); nd1.Sell(); rt1.Sell(); } } //客户端如下 //此时用户不需要了解股票,甚至可以对股票一无所知,买了基金就回家睡觉,一段时间后再赎回就可以大把数钱。参与股票的具体买卖都由基金公司完成。 class Program { static void Main(string[] args) { Fund jijin = new Fund(); //基金购买 jijin.BuyFund(); //基金赎回 jijin.SellFund(); Console.Read(); } } }外观模式优点和缺点:
原文:http://blog.csdn.net/u010104750/article/details/40659521