美文网首页
解释器模式

解释器模式

作者: 虎三呀 | 来源:发表于2018-09-25 15:48 被阅读0次

模式定义

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。

模式简单案例

public abstract class Expression {
    abstract int interpret();
}
public class NumExpression extends Expression{
    int num;
    
    public NumExpression(int num) {
        this.num = num;
    }

    @Override
    int interpret() {
        return num;
    }

}
public abstract class OperatorExpression extends Expression{
    Expression exp1,exp2;

    public OperatorExpression(Expression exp1, Expression exp2) {
        super();
        this.exp1 = exp1;
        this.exp2 = exp2;
    }
}
public class AddExpression extends OperatorExpression {

    public AddExpression(Expression exp1, Expression exp2) {
        super(exp1, exp2);
    }

    @Override
    int interpret() {
        return exp1.interpret()+exp2.interpret();
    }

}

public class Calculator {
    Stack<Expression> expStack = new Stack<>();

    public Calculator(String exp) {
        Expression exp1, exp2;
        String[] elements = exp.split(" ");
        for (int i = 0; i < elements.length; i++) {
            System.out.println(i);
            switch (elements[i].charAt(0)) {
            case '+':
                exp1 = expStack.pop();

                exp2 = new NumExpression(Integer.valueOf(elements[++i]));
                expStack.push(new AddExpression(exp1, exp2));
                break;
            default:
                expStack.push(new NumExpression(Integer.valueOf(elements[i])));
                break;
            }
        }
    }
    
    public int calculator() {
        return expStack.pop().interpret();
    }
}

public class Client {
    public static void main(String[] args) {
        System.out.println(new Calculator("10 + 2 + 10 + 2 + 10 + 30").calculator());
    }
}

相关文章

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

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

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

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

  • 解释器模式

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

  • 解释器模式

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

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

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

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

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

  • 设计模式[22]-解释器模式-Interpreter Patte

    1.解释器模式简介 解释器模式(Interpreter Pattern)模式是行为型(Behavioral)设计模...

  • 解释器模式

    今天和大家分享的模式是解释器模式。 首先介绍一下解释器模式适合解决哪类问题。 其实,解释器模式需要解决的问题是,如...

  • 解释器模式

    1. 解释器模式 1.1 定义: 解释器模式(Interpreter) : 定义一种文法的表示,并定义一种解释器...

  • 设计模式解释器模式

    解释器模式的定义 解释器模式 (Interpreter Pattern):定义一个语言的文法,并且建立一个解释器来...

网友评论

      本文标题:解释器模式

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