设计模式-解释器模式

学习笔记:解释器模式
模式简介

:属于行为型模式,提供了评估语言的语法或者表达式的方式。

为什么用

:如果一个特定类型的问题发生的频率足够高,那么就值得将该问题的实例独立出来。这样可以构建一个解释器,解释器解释句子来解决问题。

怎么样用

:一般不会用。

注意事项

:解析的规则写好。

实际举例

:游戏指令解析。

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值