结构型 外观模式

简介: 结构型 外观模式

外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 (把某些接口统一在一起,用一个接口调)

外观模式:

逻辑分析:

如一个大的系统,由不同的子模块构成,用一个类统一管理这些子模块的流程管理。

使用场景:

1:在设计大的系统时,有意识的划分模块,例如MVC模型

2:在实现一些列复杂调用时,可以对流程进行调整划分,分别实现。

源码demo:


可以增加复杂的业务,如子模块之间,模块之间的依赖关系。

#include <iostream>
using namespace std;
/*
  构建一个大的系统时,如果子模块过多,就会需要外观模式。
  用一个总的接口类,管理各个子模块,统筹调用
*/
//子系统中的一组接口,就好比语法分析,生成中间代码,生成汇编代码,链接成可执行程序或库.
//外观模式定义的一个高层接口,如提供一个接口Build按钮,通过这样的一个Build按钮,让编译器更加容易使用
// 语法分析子系统
class CSyntaxParser
{
public:
     void SyntaxParser()
     {
          cout<<"Syntax Parser"<<endl;
     }
};
// 生成中间代码子系统
class CGenMidCode
{
public:
     void GenMidCode()
     {
          cout<<"Generate middle code"<<endl;
     }
};
// 生成汇编代码子系统
class CGenAssemblyCode
{
public:
     void GenAssemblyCode()
     {
          cout<<"Generate assembly code"<<endl;
     }
};
// 链接生成可执行应用程序或库子系统
class CLinkSystem
{
public:
     void LinkSystem()
     {
          cout<<"Link System"<<endl;
     }
};
//通过外观模式,实现各个模块的统一调用,管理整个流程
class Facade
{
public:
    //这里可以相对调整  用类管理各个模块对象等
     void Compile()
     {
          CSyntaxParser syntaxParser;
          CGenMidCode genMidCode;
          CGenAssemblyCode genAssemblyCode;
          CLinkSystem linkSystem;
          syntaxParser.SyntaxParser();
          genMidCode.GenMidCode();
          genAssemblyCode.GenAssemblyCode();
          linkSystem.LinkSystem();
     }
};
// 客户端
int main()
{
     Facade facade;
     facade.Compile();
     return 0;
}
目录
相关文章
|
4月前
结构型 装饰器模式
结构型 装饰器模式
16 0
|
6月前
|
设计模式 uml
结构型设计模式03-外观模式
结构型设计模式03-外观模式
20 0
|
4月前
|
设计模式 C++
结构型 适配器模式
结构型 适配器模式
16 0
|
8月前
|
设计模式 Java 中间件
设计模式-结构型模式:外观模式
设计模式-结构型模式:外观模式
|
8月前
|
设计模式 API C++
2023-6-27-第九式外观模式
2023-6-27-第九式外观模式
46 0
|
9月前
外观模式
外观模式
39 0
|
11月前
|
应用服务中间件 智能硬件 容器
结构型模式-外观模式
结构型模式-外观模式
59 0
|
设计模式 JSON 前端开发
设计模式 - 结构型模式_外观模式
设计模式是解决程序中不合理、不易于扩展、不易于维护的问题,也是⼲掉⼤部分 ifelse 的利器,在我们常⽤的框架中基本都会⽤到⼤量的设计模式来构建组件,这样也能⽅便框架的升级和功能的扩展。 但如果不能合理的设计以及乱⽤设计模式,会导致整个编程变得更加复杂难维护,也就是我们常说的: 反设计 、 过渡设计 。⽽这部分设计能⼒也是从实践的项⽬中获取的经验,不断的改造优化摸索出的最合理的⽅式,应对当前的服务体量。
95 0
设计模式 - 结构型模式_外观模式
|
设计模式
我学会了,外观模式
外观模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
101 0
我学会了,外观模式
|
设计模式 应用服务中间件 智能硬件