// 定义:为子系统的一组接口提供一致的界面,提供一高层接口,这个接口使得子系统更容易使用
//
// 模式举例:使用编译器编译代码的时候,只需点击一下生成按钮,
// 编译器就会自动进行语法分析,生成中间代码,生成汇编代码,
// 链接生成可执行文件,这一切我们只需点击一下生成按钮
// 系统向我们隐藏了一系列的复杂操作
//
// 模式特点:该模式是不需要继承,不需要虚函数的模式之一
//
//
#include<iostream>
using namespace std;
//语法分析模块
class CSyntaxParse
{
public:
void syntaxParse()
{
cout <<"syntax parse part..."<<endl;
}
};
//生成中间代码模块
class CGenMidCode
{
public:
void genMidCode()
{
cout <<"gen mid code part..."<<endl;
}
};
//生成汇编代码模块
class CGenAssemblyCode
{
public:
void genAssemblyCode()
{
cout <<"gen assembly code part..."<<endl;
}
};
//链接生成可执行文件
class CLinkSystem
{
public:
void linkSystem()
{
cout <<"link system part..."<<endl;
}
};
class Facade
{
public:
void Compile()
{
CSyntaxParse syntaxparse;
CGenMidCode genmidcode;
CGenAssemblyCode genassemblycode;
CLinkSystem linksystem;
syntaxparse.syntaxParse();
genmidcode.genMidCode();
genassemblycode.genAssemblyCode();
linksystem.linkSystem();
}
};
int main()
{
Facade * facade = new Facade();
facade->Compile();
return 0;
}