/********************************************************************************************************
解释器模式:
解释器上下文环境类。用来存储解释器的上下文环境,比如需要解释的文法等
将某一种输入,按照某种要求进行转化操作

**********************************************************************************************************/
#include <iostream>
#include <string>
using namespace std;
class Context
{
public: //通过此类进行中间变量的存储和运算,得到数据通过此类,修改也是通过此类
Context(int num)
{ m_num = num; }
public:
void setNum(int num)
{ m_num = num; }
int getNum()
{ return m_num;  }
void setRes(int res)
{ m_res = res; }
int getRes()
{ return m_res; }
private:
int m_num;
int m_res;
};
class Expression
{
public:
virtual void interpreter(Context *context) = 0;
};
class PlusExpression : public Expression
{
public:
virtual void interpreter(Context *context)
{
int num = context->getNum();
num++;
context->setNum(num);
context->setRes(num);
}
};
class MinusExpression : public Expression
{
public:
virtual void interpreter(Context *context)
{
int num = context->getNum();
num--;
context->setNum(num);
context->setRes(num);
}
};
void main()
{ //通过一个中间类进行数据的存储转化和设置
Context *explain = new Context(10);//设置要解释的内容
Expression *e1 = new PlusExpression;//设置解释器
e1->interpreter(explain);//调用解释器内的解释函数
cout << "PlusExpression:" << explain->getRes() << endl;//得到数据结果

Expression *e2 = new MinusExpression;
e2->interpreter(explain);
cout << "MinusExpression:" << explain->getRes() << endl;

delete e2;
delete e1;
system("pause");

}

参考来源:传智播客--王保明

设计模式---解释器模式(C++实现)相关推荐

  1. Python设计模式-解释器模式

    Python设计模式-解释器模式 代码基于3.5.2,代码如下; #coding:utf-8 #解释器模式class PlayContext():play_text = Noneclass Expre ...

  2. 设计模式 | 解释器模式及典型应用

    微信原文:设计模式 | 解释器模式及典型应用 博客原文:设计模式 | 解释器模式及典型应用 本文主要介绍解释器模式,在日常开发中,解释器模式的使用频率比较低 解释器模式 解释器模式(Interpret ...

  3. 解释器android,Android的设计模式-解释器模式

    前言 Android的设计模式系列文章介绍,欢迎关注,持续更新中: 1.定义 给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子. 2.介绍 解释器模式属于行 ...

  4. C++设计模式-解释器模式

    目录 基本概念 代码与实例 基本概念 解释器模式(interpreter):给定一个语言,定义他的文法的一种表示,并定义一个解释器,这个解释器应该使用该表示来解释语言中的句子. 如果一种特定类型的问题 ...

  5. 深入浅出设计模式——解释器模式(Interpreter Pattern)

    模式动机 如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子,因此可以构建一个解释器,该解释器通过解释这些句子来解决这些问题. 解释器模式描述了如何构成一 ...

  6. PHP设计模式——解释器模式

    声明:本系列博客参考资料<大话设计模式>,作者程杰. 解释器模式:Given a language, define arepresentation for its grammar alon ...

  7. 初识设计模式 - 解释器模式

    简介 在某些情况下,为了更好地描述某一些特定类型的问题,我们可以创建一种新的语言,这种语言拥有自己的表达式和结构,即文法规则. 解释器设计模式(Interpreter Design Pattern)描 ...

  8. C++设计模式——解释器模式(interpreter pattern)

    一.原理讲解 1.1意图 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 1.2应用场景 文法简单.对于复杂的文法,文法的类层次变得庞大而无法管理:此 ...

  9. Java设计模式--解释器模式

    解释器模式 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. Interpreter Pattern Given a language, define ...

  10. 设计模式——解释器模式

    名称 Interpreter 结构   意图 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 适用性 当有  1// Interpreter  2   ...

最新文章

  1. 要求学生从事教学科研无关内容,把学生当廉价劳动力的导师将被严肃处理!...
  2. python编程语言能干什么-这 13个,1 行Python代码能干哪些事?
  3. 软件技术专业-就业提示(二、测试工程师)
  4. 转:并发与并行的区别
  5. [转帖]AjaxControlToolkit.TabContainer 自定义样式续
  6. 【实践驱动开发3-001】TI WL1835MODCOM8 在android的移植 - 准备
  7. 罗永浩“真还传”再出番外篇,被执行1800万,交个朋友回应来了…
  8. ip命令手册: 使用iproute2工具进行路由表管理和路由策略管理
  9. 第十节:Web爬虫之数据存储与MySQL8.0数据库安装和数据插入
  10. java 线程池 连接池_浅析Tomcat高并发之连接池、线程池
  11. UCI数据集详解及其数据处理(附148个数据集及处理代码)
  12. [生存志] 第3节 序 汉字的韵脚和格律(下)
  13. 会议OA之会议排座送审
  14. android简易计算器
  15. 调用WPS服务COM组件转换PDF
  16. 【BZOJ 2330】 [SCOI2011]糖果【差分约束】
  17. 证据权重 (WOE) 与信息价值 (IV)
  18. 3.18 使用橡皮擦工具制作图像合成效果 [原创Ps教程]
  19. ctf php正则截断,记[BJDCTF2020]ZJCTF,不过如此 关于php的正则匹配问题
  20. 牵手“懂行人” ,桂电要做教育数字化转型先行者

热门文章

  1. 7-4 超速判断 (10 分)
  2. jenkins相关下载链接
  3. Lunix服务器上项目迁移命令
  4. 组合数取模模板(2)
  5. Python 的解释器
  6. Python操作SQLServer示例
  7. opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3 OpenThread
  8. Kubernetes持久化存储2——探究实验
  9. DataBase -- JOIN
  10. iOS 对象数组生成jsonarray