学习笔记:解释器模式
模式简介
:属于行为型模式,提供了评估语言的语法或者表达式的方式。
为什么用
:如果一个特定类型的问题发生的频率足够高,那么就值得将该问题的实例独立出来。这样可以构建一个解释器,解释器解释句子来解决问题。
怎么样用
:一般不会用。
注意事项
:解析的规则写好。
实际举例
:游戏指令解析。
#include<iostream>
using namespace std;
//游戏指令解析
class Expression {
public:
virtual string interpret(string context) {
cout << "待实现的方法\n";
return "";
}
};
//终结性解释-就是直接解释指令
class TerminalExpression :public Expression {
private :
string data;
public:
TerminalExpression(string _data) {
this->data = _data;
}
string interpret(string context) {
string result = "";
if (data.find(context)!=data.npos) {
result= "执行1号指令\n";
}
else {
result = "error\n";
}
return result;
}
};
int main()
{
//新的指令
Expression* expression = new TerminalExpression("1号指令");
//输入指令
string input;
cin >> input;
//输出
cout << expression->interpret(input);
return 0;
}