千家信息网

C++设计模式之外观模式怎么实现

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容介绍了"C++设计模式之外观模式怎么实现"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!外观模
千家信息网最后更新 2025年02月02日C++设计模式之外观模式怎么实现

本篇内容介绍了"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();}

应用场景

  • 构建上下层次的模块时,如果上下进行调用,则会出现强耦合,用外观模式实现上下级模块的接口,简化相互调用的交叉,降低上下层的耦合度;

  • 在多个复杂模块相互协作工作时,向上用外观类提炼出高层接口,对外隐藏其内部的实现并隔离变化;

  • 对单独模块或者对复杂模块的封装,提炼出外观类进行封装访问,解耦合。

"C++设计模式之外观模式怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0