c++设计模式(解释器模式)

来源:互联网 发布:java访问jenkins 编辑:程序博客网 时间:2024/05/24 15:43

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;}
0 0
原创粉丝点击