python模式设计思想

python设计模式(十三):解释器模式

2019-02-14  本文已影响12人  Python之战

此前已经将创造型模式、结构性模式分享了,后面将分享模式设计中的另一种典型模式:行为型模式。

创造型模式是解决实体的生成问题、结构性模式是为了解决实体的组合、搭配问题 ,而行为型设计模式的出现是为了解决不同实体通信的问题。

解释器模式:开发者自定义一种“有内涵”的语言(或者叫字符串),并设定相关的解释规则,输入该字符串后可以输出公认的解释,或者执行程序可以理解的动作。这种模式被用在 SQL 解析、符号处理引擎等

解释器模式要实现两个核心角色:

# -*- coding:utf-8 -*-
import time
import datetime

"""实现一段简单的中文编程"""


class Code:
 """自定义语言"""
 def __init__(self, text=None):
        self.text = text


class InterpreterBase:
 """自定义解释器基类"""
 def run(self, code):
 pass


class Interpreter(InterpreterBase):
 """实现解释器方法,实现终结符表达式字典"""
 def run(self, code):
        code = code.text
        code_dict = {'获取当前时间戳': time.time(), "获取当前日期": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
        print(code_dict.get(code))


if __name__ == '__main__':
    test = Code()
    test.text = '获取当前时间戳'
    data1 = Interpreter().run(test)
    test.text = '获取当前日期'
    data2 = Interpreter().run(test)

-----------------
1550156061.1181707
2019-02-14 22:54:21

上面是个很简单的案例,同时我们也可以增加不同语言和不同的功能。

但实际上该模式的应用场景比较少

image
上一篇 下一篇

猜你喜欢

热点阅读