Python设计模式:解释器模式

·  阅读 132
原文链接: zhuanlan.zhihu.com

解释器模式是指给定一个语言,并定义一个解释器,这个解释器用来解释语言中的句子,说通俗点就是把一种信息转换成另一种信息。比如同一份乐谱,用钢琴、小提琴分别解释会得到不同的音乐。

① 乐器

用来对乐谱的信息进行解释,所以interpret函数内应该有更详细的信息转换方法,比如

1 → one,2 → two之类的,这里为了阐述概念,省略了。

  1. 乐器父类
class Instrument(metaclass=abc.ABCMeta):
    @classmethod
    @abc.abstractmethod
    def interpret(cls):
        pass复制代码

2. 各个具体的乐器类

class Piano(Instrument):
    @classmethod
    def interpret(cls, score):
        print(f"正在演奏 钢琴版 的 {score}")


class Violin(Instrument):
    @classmethod
    def interpret(cls, score):
        print(f"正在演奏 小提琴版 的 {score}")复制代码

② 乐谱

用于记录需要被解释的信息的对象

class Score:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name复制代码

③ 钢琴和小提琴开始解释乐谱

class Score:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name


lullaby = Score('摇篮曲')

Piano.interpret(lullaby)
Violin.interpret(lullaby)复制代码

收藏成功!
已添加到「」, 点击更改