Design 解释器模式

基本介绍

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。

这种模式实现了一个表达式接口,该接口解释一个特定的上下文。

这种模式被用在 SQL 解析、符号处理引擎等。

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

案例图示

使用解释器模式,创建一门新的语言,例如如A是B,B是C,C是D…

可用于加密的工程上:

image-20210413234309297

优缺点

优点:

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

缺点:

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

Python实现

用Python实现解释器模式:

#! /usr/local/bin/python3
# -*- coding:utf-8 -*-

class Code(object):
    """自定义语言"""

    def __init__(self, text=None):
        self.text = text


class Interpreter(object):
    """解释器,语言和解释器一一对应"""

    def run(self, document):
        content = document.text
        result = ""
        code_dict = {'a': "b", "b": "c", "c": "d"}
        for item in content:
            result += code_dict.get(item)
        return result


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

结果如下:

bcd

Golang实现

用Golang实现解释器模式:

...
posted @ 2021-04-13 23:49  云崖君  阅读(53)  评论(0编辑  收藏  举报