小小及

外观模式

使用场景: 对外提供了一个单一的接口。

例子:如vs中的编译工作,只需要一个按钮(函数),就完成了语法分析,生成中间代码,生成汇编代码,链接成可执行程序或库等等动作;

#include <iostream>
using namespace std;

// 语法分析子系统
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();
}

  

posted on 2018-08-14 09:40  小小及  阅读(132)  评论(0编辑  收藏  举报

导航