美文网首页
解释器模式

解释器模式

作者: 要学的东西太多了 | 来源:发表于2018-11-02 17:00 被阅读0次

给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。比如一个运算表达式,数字是终结符表达式,运算符号是非终结表达式。
示例如下:

public class Expression {
    public static void main(String[] a){
        Expression expression=new Expression();
        Context context=expression.new Context("34+2+9");
        System.out.println(context.expression());
    }

    interface IOperation{
        int expression();
    }

    class NumOperation implements IOperation{
        private int num;

        public NumOperation(int num) {
            this.num = num;
        }

        @Override
        public int expression() {
            return num;
        }
    }

    class PlusOperation implements IOperation{
        private IOperation start,end;

        public PlusOperation(IOperation start, IOperation end) {
            this.start = start;
            this.end = end;
        }

        @Override
        public int expression() {
            return start.expression()+end.expression();
        }
    }

    class Context implements IOperation{
        private Stack<NumOperation> operations=new Stack<>();
        private String source;

        public Context(String source) {
            this.source = source;
            init();
        }

        private void init(){
            String[] strings=source.split("\\+");
            for(int i=0;i<strings.length;i++){
                if(operations.empty()){
                    operations.add(new NumOperation(Integer.valueOf(strings[i])));
                }else{
                    operations.add(new NumOperation(new PlusOperation(operations.pop(),new NumOperation(Integer.valueOf(strings[i]))).expression()));
                }
            }
        }

        @Override
        public int expression() {
            return operations.pop().expression();
        }
    }
}

相关文章

  • 第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/ctjcxqtx.html