解释器模式
GOOD:通常当一个语言需要解释执行,并且你可以将该语言中的句子表示成为一个抽象的语法树时,可以使用解释器模式。

#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Context;
class AbstractExpression
{
public:
virtual void Interpret(Context* context)=0;
};
class Expression : public AbstractExpression
{
public:
virtual void Interpret(Context* context)
{
cout<<"终端解释器"<<endl;
};
};
class NonterminalExpression : public AbstractExpression
{
public:
virtual void Interpret(Context* context)
{
cout<<"非终端解释器"<<endl;
}
};
class Context
{
public:
string input;
string output;
};
//客户端
int main()
{
Context* context = new Context();
vector<AbstractExpression*> express;
express.push_back(new Expression());
express.push_back(new NonterminalExpression());
express.push_back(new NonterminalExpression());
vector<AbstractExpression*>::iterator p = express.begin();
while (p!= express.end())
{
(*p)->Interpret(context);
p++;
}
return 0;
}
//转载请注明,文章来自:http://blog.youkuaiyun.com/windows_nt
解释器模式详解与实现
本文深入探讨了解释器模式的原理与应用,通过C++示例展示了如何使用抽象语法树进行解释执行,旨在帮助开发者理解和掌握这一设计模式在实际编程中的应用。

被折叠的 条评论
为什么被折叠?



