行为型模式之解析器模式实现
来源:互联网 发布:双十一淘宝销售额 编辑:程序博客网 时间:2024/06/18 17:53
概念
一些应用提供了内建(Build-In)的脚本或者宏语言来让用户定义他们能够在系统中进行的操作。Interpreter模式的目的就是使用一个解释器为用户提供一个一门定义语言的语法表示的解释器,然后通过解释器来解释语言中的句子。Interpreter模式提供了一个实现语法解释器的框架。
角色和职责
Context:解释器上下文环境类。用来存储解释器的上下文环境,比如需要解释的文法等。
AbstractExpression:解释器抽象类。
ConcreteExpression:解释器具体实现类。
案例
#include <iostream>using namespace std;#include "string"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 {puclic: virtual void interpreter(Context *context) = 0;};class PlusExpression {puclic: virtual void interpreter(Context *context) { int num = context->getNum(); num++; context->setNum(num); context->setRes(num); }};class MinusExpression {puclic: virtual void interpreter(Context *context) { int num = context->getNum(); num--; context->setNum(num); context->setRes(num); }};int main(void){ Context *pcxt = new Context(100); Expression *e1 = new PlusExpression(); e1->interpreter(pcxt); cout << "PlusExpression:" << pcxt->getRes() << endl; Expression *e2 = new MinusExpression(); e2->interpreter(pcxt); cout << "MinusExpression:" << pcxt->getRes() << endl; delete e1; delete e2; return 0;}
阅读全文
0 0
- 行为型模式之解析器模式实现
- java设计模式(行为型)之解析器模式
- 行为型模式之模板模式实现
- 行为型模式之命令模式实现
- 行为型模式之策略模式实现
- 行为型模式之观察者模式实现
- 行为型模式之备忘录模式实现
- 行为型模式之访问者模式实现
- 行为型模式之状态模式实现
- 行为型模式之迭代器模式实现
- 行为型模式之责任链模式实现
- 行为型模式之中介者模式实现
- Kotlin设计模式实现之行为型设计模式
- Java设计模式_(行为型)_解析器模式
- 行为型模式之解释器INTERORETER
- 行为型之命令模式
- 行为型之状态模式
- 行为型之观察者模式
- K均值聚类(K-means)
- Uva.202 Repeating Decimals
- springMVC设置不拦截静态资源
- 快速移动、淡入效果fadeIn()未完成就无法进行display的none操作
- 查看CentOS版本
- 行为型模式之解析器模式实现
- vi设置 打开文件直接跳到文件关闭时光标的位置
- django 用户认证 user对象
- 移动端与PHP服务端接口通信流程设计(基础版)
- list_for_each_entry
- 动态规划实例(三):硬币找零方案
- “玲珑杯”线上赛 Round #15 咸鱼文章(栈)
- JBOSS加密链接数据库
- opencv直方图相关及应用