Python设计模式:解释器模式
解释器模式是指给定一个语言,并定义一个解释器,这个解释器用来解释语言中的句子,说通俗点就是把一种信息转换成另一种信息。比如同一份乐谱,用钢琴、小提琴分别解释会得到不同的音乐。
① 乐器
用来对乐谱的信息进行解释,所以interpret函数内应该有更详细的信息转换方法,比如
1 → one,2 → two之类的,这里为了阐述概念,省略了。
- 乐器父类
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
③ 钢琴和小提琴开始解释乐谱
lullaby = Score('摇篮曲')
Piano.interpret(lullaby)
Violin.interpret(lullaby)
编辑于 2020-03-28 00:35