美文网首页
c++解释器模式

c++解释器模式

作者: 一路向后 | 来源:发表于2021-02-25 22:53 被阅读0次

1.解释器模式简介

   解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。

2.源码实现

#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);
    }
};

int main(int argc, char **argv)
{
    Context *pcxt = new Context(10);
    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;

    delete pcxt;

    return 0;
}

3.编译源码

$ g++ -o example example.cpp

4.运行及其结果

$ ./example
PlusExpression: 11
MinusExpression: 10

相关文章

  • 解释器模式C++

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

  • c++解释器模式

    1.解释器模式简介    解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,...

  • 【C++设计模式】 解释器模式

  • 第5章 -行为型模式-解释器模式(终)

    一、解释器模式的简介 二、解释器模式的优缺点 三、解释器模式的实例

  • 17.解释器模式(行为型)

    解释器模式(行为型) 解释器模式很难学,使用率很低! 一、相关概念 1). 解释器模式概述 解释器模式是一种使用频...

  • 解释器模式

    一、解释器模式介绍 二、解释器模式代码实例

  • 解释器模式

    解释器模式 解释器模式的定义 解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案...

  • 行为型模式:解释器模式

    原文首发:行为型模式:解释器模式 十一大行为型模式之十:解释器模式。 简介 姓名 :解释器模式英文名 :Inter...

  • Unsafe方法的实现

    1.在解释器模式下,使用的是C++语言的JNI调用2.在JIT模式下,使用的是intrinsic调用。参考:htt...

  • 折腾Java设计模式之解释器模

    解释器模式 解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器...

网友评论

      本文标题:c++解释器模式

      本文链接:https://www.haomeiwen.com/subject/zmjpfltx.html