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

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

作用

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

类视图

实现

//复杂或多对象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();}

应用场景

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

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

接受失败等于回归真实的自我,接受失败等于打破完美的面具,

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

相关文章:

你感兴趣的文章:

标签云: