设计模式笔记:如何实现解释器模式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2499个文字,预计阅读时间需要10分钟。
解释器模式(Interpreter Design Pattern)定义了一种语言,规定了该语言的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。这里的语言指的是使用一系列规则定义的符号集合,例如编程语言、自然语言等。解释器模式通过解释器来解析并执行这些规则,实现对语言句子的解释。
解释器模式(Interpreter Design Pattern)指给定一个“语言”,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这里所指的“语言”是指使用规定格式和语法的代码。
比如说在计算器中,我们输入一个加法/减法表达式(中缀表达式)“1+6-5”字符串,就能在计算器中输出结果2。而我们知道,一般的程序语言像C++、Java和Python无法直接解释这个字符串,那么就必须定义规定格式和语法的解释器,来对这个字符串表达式进行解释成程序语言能计算的方式(后缀表达式),最后再进行输出。也就是中缀表达式转换成后缀表达式。
那么在着这个转换中就需要满足这样的语法:
首先 依次 遍历中缀表达式,
如果是数字 直接输出
如果是符号:
左括号, 直接进栈
运算符, 与栈顶元素 进行比较如果 栈顶元素 优先级较低, 直接入栈即可。
如果栈顶元素 优先级较高,将栈顶元素 弹出 并输出。 之后进栈即可。
右括号, 将栈中的元素依次弹出 直到遇到左括号。
遍历结束后,如果栈中还有元素依次弹出并输出 即可。
本文共计2499个文字,预计阅读时间需要10分钟。
解释器模式(Interpreter Design Pattern)定义了一种语言,规定了该语言的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。这里的语言指的是使用一系列规则定义的符号集合,例如编程语言、自然语言等。解释器模式通过解释器来解析并执行这些规则,实现对语言句子的解释。
解释器模式(Interpreter Design Pattern)指给定一个“语言”,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这里所指的“语言”是指使用规定格式和语法的代码。
比如说在计算器中,我们输入一个加法/减法表达式(中缀表达式)“1+6-5”字符串,就能在计算器中输出结果2。而我们知道,一般的程序语言像C++、Java和Python无法直接解释这个字符串,那么就必须定义规定格式和语法的解释器,来对这个字符串表达式进行解释成程序语言能计算的方式(后缀表达式),最后再进行输出。也就是中缀表达式转换成后缀表达式。
那么在着这个转换中就需要满足这样的语法:
首先 依次 遍历中缀表达式,
如果是数字 直接输出
如果是符号:
左括号, 直接进栈
运算符, 与栈顶元素 进行比较如果 栈顶元素 优先级较低, 直接入栈即可。
如果栈顶元素 优先级较高,将栈顶元素 弹出 并输出。 之后进栈即可。
右括号, 将栈中的元素依次弹出 直到遇到左括号。
遍历结束后,如果栈中还有元素依次弹出并输出 即可。

