15、设计模式Python版-解释器模式

基本介绍

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式。

这种模式实现了一个表达式接口,该接口解释一个特定的上下文,常被用在 SQL 解析、符号处理引擎等。

特点:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用对应文法来解释语言中的语句

该模式属于行为型模式。

案例图示

使用解释器模式,创建一门新的语言,例如

  • A是B,B是C,C是D…

可用于加密的工程上:

 

优缺点

优点:

  • 可扩展性比较好,灵活
  • 增加了新的解释表达式的方式
  • 易于实现简单文法

缺点:

  • 可利用场景比较少
  • 对于复杂的文法比较难维护

代码实现

用Python实现解释器模式:

# 密文
class Code:
    def __init__(self, content) -> None:
        self.content = content

# 解释器
class Interpreter:
    # 定义文法
    grammar = {
        "a" : "b",
        "b" : "c",
        "c" : "d"
    }

    def run(self, document):
        content = document.content
        result = ""
        for ch in content:
            result += __class__.grammar[ch]
        return result

if __name__ == "__main__":
    document = Code("abc")
    result = Interpreter().run(document)
    print(result)

# bcd