码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 第十八章·解释器模式


    一、解释器模式概述

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

    解释器模式是一种使用频率相对较低且学习难度相对较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器。

    二、解释器模式的结构

    解释器模式结构包含以下4个角色:

    1. 抽象表达式:声明了抽象的解释操作,是所有终结符表达式和非终结符表达式的公共父类。
    2. 终结符表达式:是抽象表达式的子类,实现了与文法中的终结符相关联的解释操作。
    3. 非终结符表达式:是抽象表达式的子类,实现了与文法中的非终结符相关联的解释操作。
    4. 环境类:用于存储解释器之外的一些全局信息。

    三、解释器模式的优缺点和适用环境

    3.1 解释器模式的优点

    1. 易于改变和扩展文法
    2. 可以方便的实现一个简单的语言
    3. 实现文法较为容易
    4. 增加新的解释表达式较为方便

    3.2 解释器模式的缺点

    1. 对于复杂文法难以维护
    2. 执行效率低

    3.3 解释器模式的适用环境

    1. 可以将一个需要解释执行的语言中的句子表示为一棵抽象语法树
    2. 一些重复出现的问题可以用一种简单的语言进行表达
    3. 一个语言的文法较为简单
    4. 执行效率不是关键问题

    【参考文献】:
    本文是根据刘伟的《Java设计模式》一书的学习笔记,仅供学习用途,勿做其他用途,请尊重知识产权。

    【本文代码仓库】:https://gitee.com/xiongbomy/java-design-pattern.git

  • 相关阅读:
    超详细的等保“测评”攻略来了
    【编码问题】使用 http 请求,中文乱码问题
    UBUNTU新版本,一键安装NETCDF,安装netcdf-c netcdf-v
    nginx优先级、规则及重定向
    C语言宏定义提供了一些进阶操作
    matplotlib 中使用中文
    k8s 存储卷详解与动静部署详解
    elasticsearch查询之三种fetch id的方案分析
    ECCV2022 | 多模态融合检测新范式!基于概率集成实现多模态目标检测
    抽象类和接口
  • 原文地址:https://blog.csdn.net/weixin_44143114/article/details/126533090
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号