结构型 外观模式

简介: 结构型 外观模式

外观模式(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;
}
目录
相关文章
|
25天前
|
设计模式 缓存 算法
C#一分钟浅谈:组合模式与外观模式
【10月更文挑战第15天】本文介绍了面向对象设计模式中的组合模式和外观模式。组合模式通过树形结构表示“部分-整体”的层次关系,适用于文件系统、图形界面等场景;外观模式提供统一接口简化复杂系统的使用,适用于视频播放器等多模块系统。文章详细解释了这两种模式的基本概念、应用场景、实现方式及常见问题和解决方法,帮助读者更好地理解和应用。
37 9
|
6月前
结构型 装饰器模式
结构型 装饰器模式
32 0
|
设计模式 uml
结构型设计模式03-外观模式
结构型设计模式03-外观模式
41 0
|
2月前
|
设计模式 Java
Java设计模式-外观模式(11)
Java设计模式-外观模式(11)
|
1月前
|
设计模式 Java
Java设计模式之外观模式
这篇文章详细解释了Java设计模式之外观模式的原理及其应用场景,并通过具体代码示例展示了如何通过外观模式简化子系统的使用。
29 0
|
6月前
|
设计模式 C++
结构型 适配器模式
结构型 适配器模式
39 0
|
6月前
|
存储 安全
结构型 组合模式
结构型 组合模式
30 0
|
设计模式 Java 中间件
设计模式-结构型模式:外观模式
设计模式-结构型模式:外观模式
101 0
|
应用服务中间件 智能硬件 容器
结构型模式-外观模式
结构型模式-外观模式
81 0
|
设计模式 JSON 前端开发
设计模式 - 结构型模式_外观模式
设计模式是解决程序中不合理、不易于扩展、不易于维护的问题,也是⼲掉⼤部分 ifelse 的利器,在我们常⽤的框架中基本都会⽤到⼤量的设计模式来构建组件,这样也能⽅便框架的升级和功能的扩展。 但如果不能合理的设计以及乱⽤设计模式,会导致整个编程变得更加复杂难维护,也就是我们常说的: 反设计 、 过渡设计 。⽽这部分设计能⼒也是从实践的项⽬中获取的经验,不断的改造优化摸索出的最合理的⽅式,应对当前的服务体量。
122 0
设计模式 - 结构型模式_外观模式