#pragma once
#include "stdafx.h"
#include<map>
#include<set>
#include<list>
#include<string>
#include<iostream>
using namespace std;/*设计模式-解释器模式(interpreter)给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表示为一个简单语言中的句子。
这样就可以构建一个解释器,该解释器通过解释这些句子来解决问题(比如正则表达式)。
*/class CContext {//解释器之外的一些全局信息
public:string mstrInput;CContext(const string &strInput) {mstrInput = strInput;}
};class CAbstractExpression {//抽象解释操作
public:virtual void Interpret(CContext *pContext) = 0;
};class ExpressionA : public CAbstractExpression {//表达式A
public:void Interpret(CContext *pContext) {cout << "ExpressionA:" << pContext->mstrInput << endl;}
};class ExpressionB : public CAbstractExpression {//表达式B
public:void Interpret(CContext *pContext) {cout << "ExpressionB:" << pContext->mstrInput << endl;}
};int main() {list<CAbstractExpression*>lstWork;lstWork.clear();lstWork.push_back(new ExpressionA());lstWork.push_back(new ExpressionB());lstWork.push_back(new ExpressionA());lstWork.push_back(new ExpressionB());CContext *pContext = new CContext("test");for each(CAbstractExpression * index in lstWork) {index->Interpret(pContext);delete index;}delete pContext;getchar();return 0;
}

设计模式复习-解释器模式相关推荐

  1. python实现解释器_Python设计模式之解释器模式

    解释器模式 对每个应用来说,至少有以下两种不同的用户分类. 基本用户:这类用户只希望能够凭直觉使用应用.他们不喜欢花太多时间配置或学习应用的内部.对他们来说,基本的用法就足够了. 高级用户:这些用户, ...

  2. java 设计模式之解释器模式(十九)

    java 设计模式之解释器模式①⑨ 定义 角色分析 使用场景 代码实现 躁动的心灵,不安的灵魂.在彷徨中挣扎,在迷失中探索.时光飞逝,努力不变. 设计模式学习,近期我会把23种设计模式都写成博客,敬请 ...

  3. 北风设计模式课程---解释器模式(Interpreter Pattern)

    北风设计模式课程---解释器模式(Interpreter Pattern) 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用 ...

  4. 设计模式之解释器模式(Interpreter)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  5. 螃蟹学PHP设计模式之解释器模式

    2019独角兽企业重金招聘Python工程师标准>>> 8.解释器模式 今天又迟到了一个小时,不过现在基本任务都做完了,螃蟹的效率还是挺高的.昨天一天跑各个工商局,发现大学生创业的扶 ...

  6. 设计模式系列 - 解释器模式

    解释器模式通过实现一个表达式接口,从而能够以指定方式解析指定内容 介绍 解释器模式属于行为型模式,通过这种设计模式,我们可以定义一种特定的解释器来解释特定的业务场景,可以类比不同的编程语言的编译器需要 ...

  7. 设计模式:解释器模式(Interpreter)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. Android设计模式之——解释器模式

    一.介绍 解释器模式(Interpreter Pattern)是一种用的比较少的行为型模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文.在这么 ...

  9. php 面向对象进阶,PHP面向对象进阶设计模式:解释器模式使用实例

    什么是解释器模式? 解释器设计模式用于分析一个实体的关键元素,并且针对每个元素都提供自己的解释或相应的动作. 解释器模式问题与解决方案 解释器设计模式是我们经常使用但未意识到的少数几个常见设计模式之一 ...

最新文章

  1. SAP系统如何快速上手?
  2. 图森无人车联合UCSD新研究:自动驾驶更省油
  3. TM、XWT和Wazaabi
  4. 关闭iOS软键盘的小方法
  5. boost::reverse_lock相关的测试程序
  6. python基础课程6(看代码看注释)--pandas
  7. js_DOM读写节点
  8. 面试题 02.04. 分割链表
  9. 查询集 QuerySet
  10. 更改收藏夹路径和桌面路径
  11. vs新建一个excelpackage时间太长_炖牛肉vs煎牛肉,前者几小时后者几分钟,大厨告诉了我原因...
  12. 戴尔t40服务器接显示器,Dell PowerEdge T40 机架式服务器
  13. 大学python教材电子版下载_Python数据分析基础(全国高等院校应用型创新规划教材·计算机系列)...
  14. 牡丹-曹州牡丹:曹州牡丹
  15. opendrive简介
  16. 计算机键盘上删除,电脑哪个是删除键
  17. 电子计算机发明于20世纪什么年代,电子计算机发明于哪一年
  18. 《系统工程理论与实践》Latex 模板使用教程
  19. 英语单词记忆测试软件,适用于检查学生英语单词背诵情况的软件
  20. wireshark出现rst的原因_多次RST以及不同场景下的RST报文的差异

热门文章

  1. salt-ssh 安装salt-minion 笔记
  2. 宽度高度sizeWithFont:constrainedToSize:lineBreakMode的使用
  3. kvm热添加和热迁移
  4. 视图、触发器、事务、存储过程、函数
  5. [Linux]lnmp一键安装包,访问yii/tp5/laravel的时候,报错500或者空白页面
  6. [转]MySQL Explain详解
  7. 【面向对象设计与构造】第一次博客作业
  8. 移动端geolocation插件+百度地图js获取地址
  9. ACCP8.0Y2Web前端框架与移动应用开发第5章Bootstrap制作微票儿首页
  10. 大话网站---从Hello World到高并发网站