解释器模式

定义:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。

应用场景

1、可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。

2、一些重复出现的问题可以用一种简单的语言来进行表达。

3、一个简单语法需要解释的场景。

优点

1、可扩展性比较好,修改语法规则只要修改相应的非终结符表达式就可以了,若扩展语法,则只要增加非终结符类就可以了。

2、增加了新的解释表达式的方式。

3、在语法树中的每个表达式节点类都是相似的,所以实现其文法较为容易

缺点

1、解释器模式会引起类膨胀,每个语法都要产生一个非终结符表达式,语法规则比较复杂时,就可能产生大量的类文件,为维护带来了非常多的麻烦。

2、解释器模式采用递归调用方法,当解析复杂、冗长的语法时,效率会变低。

生活场景中的应用

     编译器、运算表达式计算

源码应用
               1)jdk的Pattern类

               2)spring的SpelExpressionParser

相关推荐

  1. 解释模式(Interpreter)

    2024-03-26 21:54:03       57 阅读
  2. 解释模式

    2024-03-26 21:54:03       36 阅读
  3. 设计模式——解释模式

    2024-03-26 21:54:03       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 21:54:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 21:54:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 21:54:03       82 阅读
  4. Python语言-面向对象

    2024-03-26 21:54:03       91 阅读

热门阅读

  1. iptables笔记

    2024-03-26 21:54:03       35 阅读
  2. Vue中如何实现动态改变字体大小

    2024-03-26 21:54:03       42 阅读
  3. C++与C语言之间的区别

    2024-03-26 21:54:03       44 阅读
  4. JWT令牌

    JWT令牌

    2024-03-26 21:54:03      44 阅读
  5. 结构体-C语言

    2024-03-26 21:54:03       42 阅读
  6. Redis事务

    2024-03-26 21:54:03       39 阅读
  7. C语言每日一题(65)有效三角形的个数

    2024-03-26 21:54:03       45 阅读
  8. python 打包

    2024-03-26 21:54:03       40 阅读
  9. MySQL中的binlog和redolog有什么区别?

    2024-03-26 21:54:03       32 阅读
  10. leetcode-链表

    2024-03-26 21:54:03       46 阅读
  11. 力扣1----10(更新)

    2024-03-26 21:54:03       35 阅读
  12. C# 关键字 as is

    2024-03-26 21:54:03       38 阅读