首页 > 编程 > C++ > 正文

C++设计模式之外观模式(Facade)

2020-05-23 13:34:37
字体:
来源:转载
供稿:网友

外观模式应该是程序员最下意识用的一种模式,比如我们习惯性的对复杂系统做一个封装接口。外观模式其本质是对一堆复杂对象和应用的接口抽象,对它们进行封装隔离,对于调用者来说只需要关系接口的实现,而不需要知道内部有哪些对象和调用。

作用

为模块的一组接口提供一致的界面,定义了一个高层接口,这个接口使得这一模块更加容易使用。

类视图

C++,设计模式,外观模式

实现

 

//复杂或多对象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";  }}//外观实现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();  }}//调用void main() {  Facade facade = new Facade();  facade.MethodA();  facade.MethodB();}

应用场景

  • 构建上下层次的模块时,如果上下进行调用,则会出现强耦合,用外观模式实现上下级模块的接口,简化相互调用的交叉,降低上下层的耦合度;
  • 在多个复杂模块相互协作工作时,向上用外观类提炼出高层接口,对外隐藏其内部的实现并隔离变化;
  • 对单独模块或者对复杂模块的封装,提炼出外观类进行封装访问,解耦合。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表