外观模式——基金帮我炒股

简介: 外观模式——基金帮我炒股

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


●  门面(Facade)角色 :客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。

●  子系统(SubSystem)角色 :可以同时有一个或者多个子系统。每个子系统都不是一个单独的类,而是一个类的集合(如下面的子系统就是由Stock1、Stock2、Stock3三个类组合而成)。每个子系统都可以被客户端直接调用,或者被门面角色调用。

子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已,两者是关联关系。

优点:


松散耦合:门面模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。

简单易用:门面模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。

更好的划分访问层次:通过合理使用Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节。


   例子背景:基金能帮助股民管理股票,交给基金来炒股的好处就是,股民不需要对市场上的股票一一进行了解,只要选择一支基金,让它来帮忙打理即可。

股票类:

    class Stock1  //股票1
    {
        public void Sell()
        {
            Console.WriteLine ("股票1卖出");
        }
        public void Buy()
        {
            Console.WriteLine("股票1买入");
        }
    }
    class Stock2  //股票2
    {
    代码类似,省略
    }
    class Stock3  //股票3
    {
    代码类似,省略
    }

基金类:统一打理股票

    class Fund
    {
        Stock1 gu1;
        Stock2 gu2;
        Stock3 gu3;
        public Fund()
        {
            gu1 = new Stock1() ;
            gu2 = new Stock2();
            gu3 = new Stock3();
        }
        public void BuyFund() //三股一起买入
        {
            gu1.Buy();
            gu2.Buy();
            gu3.Buy();
        }
        public void SellFund()  //三股一起卖出
        {
            gu1.Sell();
            gu2.Sell();
            gu3.Sell();
        }
    }

客户端:不用了解股票1、2、3,依赖基金即可

        static void Main(string[] args)
        {
            Fund jijin = new Fund();
            jijin.BuyFund();
            jijin.SellFund();
            Console.Read();
        }
相关文章
淘集集正式启动破产清算;果冻有家,3000万95后共享社交住房平台
淘集集正式启动破产清算;果冻有家,3000万95后共享社交住房平台
262 0
|
大数据 UED
蹭个车完成数千万天使轮融资 专注于二手车全生命周期服务
目前蹭个车的城市合伙人计划在全国各大城市已成功整合了300多家汽车维保门店。
305 0
|
监控 搜索推荐 大数据

热门文章

最新文章