国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++設(shè)計模式之外觀模式(Facade)

2020-01-26 13:44:22
字體:
供稿:網(wǎng)友

外觀模式應(yīng)該是程序員最下意識用的一種模式,比如我們習(xí)慣性的對復(fù)雜系統(tǒng)做一個封裝接口。外觀模式其本質(zhì)是對一堆復(fù)雜對象和應(yīng)用的接口抽象,對它們進(jìn)行封裝隔離,對于調(diào)用者來說只需要關(guān)系接口的實(shí)現(xiàn),而不需要知道內(nèi)部有哪些對象和調(diào)用。

作用

為模塊的一組接口提供一致的界面,定義了一個高層接口,這個接口使得這一模塊更加容易使用。

類視圖

實(shí)現(xiàn)

//復(fù)雜或多對象class objectOne{  public void operator()   {    cout<<"operator one/n";  }}class objectTwo{  public void operator()   {    cout<<"operator two/n";  }}class objectThree{  public void operator()   {    cout<<"operator three/n";  }}class objectFour{  public void operator()   {    cout<<"operator four/n";  }}//外觀實(shí)現(xiàn)class Facade{  objectOne one;  objectTwo two;  objectThree three;  objectFour four;  public Facade()   {    obj1 = new objectOne();    obj2 = new objectTwo();    obj3 = new objectThree();    obj4 = new objectFour();  }  public void MethodA()   {    cout<<" Fun A()-----/n");    obj1.operator();    obj2.operator();    obj3.operator();    obj4.operator();  }  public void MethodB()   {    cout<<" Fun B()-----/n");    obj4.operator();    obj3.operator();    obj2.operator();    obj1.operator();  }}//調(diào)用void main() {  Facade facade = new Facade();  facade.MethodA();  facade.MethodB();}

應(yīng)用場景

  • 構(gòu)建上下層次的模塊時,如果上下進(jìn)行調(diào)用,則會出現(xiàn)強(qiáng)耦合,用外觀模式實(shí)現(xiàn)上下級模塊的接口,簡化相互調(diào)用的交叉,降低上下層的耦合度;
  • 在多個復(fù)雜模塊相互協(xié)作工作時,向上用外觀類提煉出高層接口,對外隱藏其內(nèi)部的實(shí)現(xiàn)并隔離變化;
  • 對單獨(dú)模塊或者對復(fù)雜模塊的封裝,提煉出外觀類進(jìn)行封裝訪問,解耦合。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰溪市| 克什克腾旗| 呼玛县| 黑山县| 郎溪县| 耿马| 修文县| 香河县| 清流县| 云阳县| 垦利县| 聊城市| 高邮市| 德兴市| 崇义县| 延寿县| 鹰潭市| 德阳市| 宝山区| 彰化市| 阳东县| 徐水县| 永丰县| 监利县| 泾川县| 怀来县| 石台县| 集贤县| 枣强县| 佛山市| 隆安县| 吴江市| 澄城县| 互助| 永平县| 西乡县| 甘洛县| 莱阳市| 渑池县| 富民县| 靖州|