zoukankan      html  css  js  c++  java
  • 行为型-解释器模式(Interpreter)

    介绍

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

    主要解决:对于一些固定文法构建一个解释句子的解释器。

    何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。

    如何解决:构建语法树,定义终结符与非终结符。

    关键代码:构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。

    应用实例:编译器、运算表达式计算。

    解释器模式示例:

    我们将创建一个接口 Expression 和实现了 Expression 接口的实体类。定义作为上下文中主要解释器的 TerminalExpression 类。其他的类 OrExpressionAndExpression 用于创建组合式表达式。

    InterpreterPatternDemo,我们的演示类使用 Expression 类创建规则和演示表达式的解析。

     

     执行程序,输出结果:

    John is male? true
    Julie is a married women? true

    转:https://www.runoob.com/design-pattern/interpreter-pattern.html

  • 相关阅读:
    time模块
    Python进程模块
    Django面试题
    基本命令行语句
    scrapy中的配置与中间件
    JSON编码于解码对应dump于load
    python操作数据库
    Python里的方法
    正则表达式
    Python常用模块
  • 原文地址:https://www.cnblogs.com/fangyanr/p/14049276.html
Copyright © 2011-2022 走看看