码迷,mamicode.com
首页 > 其他好文 > 详细

解释器模式

时间:2014-12-26 21:43:48      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:设计模式

1,现在很多杀毒软件,采用了解释器模式,就减速升级的次数,从而提高了用户体验了,当有一种新的病毒的时候不需要升级客户端,而是服务器直接发送命令(命令模式),然后客户端进行解析命令,就用到了解释器模式,还有我们的编译器也是这种模式

2,代码

// 解释器模式.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <list>


using namespace std;

//上下文
class Context;


//解释器的接口
class AbstractExpression{
public:
	virtual void interpret(Context *) = 0;
};


//解释器的具体实现类,通过传入的上下文context 进行解释
class TerminalExpression :public AbstractExpression{
public:
	void interpret(Context *c){
		cout << "terminal expression" << endl;
	}
};


//解释器的具体实现类
class NoteterminalExpression:public AbstractExpression
{
public:
	void interpret(Context *c){
		cout << "NoteterminalExpression " << endl;
	}
};


class Context{
public:
	string input, output;
};


int _tmain(int argc, _TCHAR* argv[])
{
	Context *context = new Context();
	list<AbstractExpression *> lst;

	lst.push_back(new TerminalExpression());
	lst.push_back(new NoteterminalExpression());
	lst.push_back(new TerminalExpression());
	lst.push_back(new TerminalExpression());


	for (list<AbstractExpression*>::iterator iter = lst.begin(); iter != lst.end(); iter++){
		(*iter)->interpret(context);
	}
	
	cin.get();
	return 0;
}


解释器模式

标签:设计模式

原文地址:http://blog.csdn.net/sun734274006/article/details/42176817

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!