23种设计模式介绍(Python示例讲解)(28)

2023-04-30 来源:飞速影视
总的来说,命令模式提供了一种通过将请求封装成对象来实现请求的发送、执行和撤销的方法,从而使得命令对象和命令接收者对象解耦,提高程序的灵活性和可扩展性。
3、解释器模式(Interpreter)
解释器模式(Interpreter Pattern)是一种行为型设计模式,它定义了一种语言文法,以及一个解释器,用于解释该语言中的句子。解释器模式通常用于解决特定类型的问题,例如解释计算器表达式,SQL 查询语句等。
解释器模式包括三个核心角色:
Context(上下文):它是解释器的运行环境。它存储解释器所需的一些全局信息。Abstract Expression(抽象表达式):它是定义所有表达式的接口,通常包含解释方法 interpret()。Concrete Expression(具体表达式):它实现抽象表达式接口,用于解释特定类型的表达式。
下面是解释器模式的 Python 实现示例:
class Context: def __init__(self): self._variables = {} def set_variable(self, name, value): self._variables[name] = value def get_variable(self, name): return self._variables.get(name)class Expression: def interpret(self, context): passclass VariableExpression(Expression): def __init__(self, name): self._name = name def interpret(self, context): return context.get_variable(self._name)class ConstantExpression(Expression): def __init__(self, value): self._value = value def interpret(self, context): return self._valueclass AddExpression(Expression): def __init__(self, left, right): self._left = left self._right = right def interpret(self, context): return self._left.interpret(context) self._right.interpret(context)class SubtractExpression(Expression): def __init__(self, left, right): self._left = left self._right = right def interpret(self, context): return self._left.interpret(context) - self._right.interpret(context)if __name__ =="__main__": # 测试代码 context = Context() a = ConstantExpression(1) b = ConstantExpression(2) c = ConstantExpression(3) x = VariableExpression("x") y = VariableExpression("y") context.set_variable("x", 10) context.set_variable("y", 5) # 1 2 3 = 6 expression = AddExpression(AddExpression(a, b), c) result = expression.interpret(context) print(result) # 10 - 2 5 = 13 expression = AddExpression(SubtractExpression(x, b), y) result = expression.interpret(context) print(result)
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号