书中第三个设计模式——装饰者模式
按照惯例祭出类图:
然后是例子
先来一个模仿书中java代码写的版本,随后附上使用python装饰器的简单版本(本想直接用装饰器的,目前还没有想到好的办法完全实现书中的功能)
更正下使用装饰器语法糖只能使原来饮料类在编译前添加功能,而不能在运行时动态的增加配料,由此看出设计模式中的装饰者模式和python的装饰器关系不是很大,碰巧名字相似而已~
# coding=utf-8
class Beverage:
def __init__(self):
self._description = ""
self._cost = 0
def getDescription(self):
return self._description
def cost(self):