•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

C++设想形式浅识表面形式【C#.Net教程】,C++,设计模式,外观模式

摘要: 表面形式(Facade):为子体系中的一组接口供应一个一致的界面,此形式定义了一个高层接口,这个接口使得这一子体系越发轻易运用。两大角色:表面类Facade:晓得哪些子体系类负责处置...
表面形式(Facade):为子体系中的一组接口供应一个一致的界面,此形式定义了一个高层接口,这个接口使得这一子体系越发轻易运用。

两大角色:

表面类Facade: 晓得哪些子体系类负责处置惩罚要求,将客户的要求代办给恰当的子体系对象。

子体系鸠合SubSystem: 完成子体系的功用,处置惩罚Facade对象指派的使命。注重:子类没有Facade的任何信息,即没有对Facade对象的援用。

本文以购置基金为例,客户只需买入卖出基金(Facade),而个中的股票1、股票2、股票3等(SubSystem)操纵由基金公司负责处置惩罚。

测试用例:

[code]int main(){
    Fund fund;//基金对象(Facade)
    fund.fundBuy();//stock1 buy stock2 buy stock3 buy
    fund.fundSell(); //stock1 sell stcok2 sell stock3 sell

    return 0;
}

表面形式完成:

[code]//子体系不晓得Facade的任何信息
//股票1号
class Stock1{
public:
    void sell(){
        std::cout << "stock1 sell\n";
    }
    void buy(){
        std::cout << "stock1 buy\n";
    }
};
//股票2号
class Stock2{
public:
    void sell(){
        std::cout << "stcok2 sell\n";
    }
    void buy(){
        std::cout << "stock2 buy\n";
    }
};
//股票3号
class Stock3{
public:
    void sell(){
        std::cout << "stock3 sell\n";
    }
    void buy(){
        std::cout << "stock3 buy\n";
    }
};

//基金类是Facade
class Fund{
public:
    Stock1 stock1;
    Stock2 stock2;
    Stock3 stock3;
    void fundSell(){
        stock1.sell();
        stock2.sell();
        stock3.sell();
    }
    void fundBuy(){
        stock1.buy();
        stock2.buy();
        stock3.buy();
    }
};

什么时候运用表面形式?

在设想早期,应当要有认识的将差别的两个层星散。

在开辟阶段,子体系每每由于不停的重构演变而变得愈来愈庞杂。

在保护一个遗留的大型体系时,能够将原体系高度庞杂的代码或设想粗拙的代码以比较简单清楚的接口让新体系与Facade对象交互。

以上就是C++设想形式浅识表面形式的内容,更多相关内容请关注ki4网(www.ki4.cn)!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号