Design 解释器模式
基本介绍
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。
这种模式实现了一个表达式接口,该接口解释一个特定的上下文。
这种模式被用在 SQL 解析、符号处理引擎等。
特点:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子
案例图示
使用解释器模式,创建一门新的语言,例如如A是B,B是C,C是D…
可用于加密的工程上:
优缺点
优点:
- 可扩展性比较好,灵活
- 增加了新的解释表达式的方式
- 易于实现简单文法
缺点:
- 可利用场景比较少
- 对于复杂的文法比较难维护
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实现解释器模式:
...