外觀模式
使用場景: 對外提供了一個單一的接口。
例子:如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();
}
浙公網安備 33010602011771號