解释器模式
简介
参考链接
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。
UML类图
代码示例
#include <iostream>
#include <string>
using namespace std;
class Context
{
public:
Context(int num) {
m_num = num;
}
int m_num;
private:
};
class Expression
{
public:
virtual void interpreter(Context *context) = 0;
};
class PlusExpression : public Expression
{
public:
virtual void interpreter(Context *context) {
int num = context->m_num;
num++;
std::cout << "PlusExpression result: " << num << std::endl;
}
};
class MinusExpression : public Expression
{
public:
virtual void interpreter(Context *context) {
int num = context->m_num;
num--;
std::cout << "MinusExpression result: " << num << std::endl;
}
};
int main(int argc, char **argv)
{
Context *pcxt = new Context(10);
Expression *e1 = new PlusExpression();
Expression *e2 = new MinusExpression();
e1->interpreter(pcxt);
e2->interpreter(pcxt);
delete e1;
delete e2;
delete pcxt;
return 0;
}