|
本帖最后由 LiuYang 于 2016-6-2 09:04 编辑
装饰模式:动态地为对象增加额外的功能。
代码:
- import pyb
- class LEDx:
- def __init__(self, ledname):
- self.name = ledname
- def ExecLED(self):
- pyb.LED(3).on()
- pyb.delay(500)
- pyb.LED(3).off()
- pyb.delay(500)
- class LEDObj(LEDx):
- obj = None
- def __init__(self):
- pass
- def ObjectLED(self, c):
- self.obj = c
- def ExecLED(self):
- if (self.obj != None):
- self.obj.ExecLED()
-
- class LEDFlash(LEDObj):
- def __init__(self):
- pass
- def ExecLED(self):
- self.obj.ExecLED()
- pyb.LED(4).on()
- pyb.delay(500)
- pyb.LED(4).off()
- pyb.delay(500)
-
- if __name__ == "__main__":
- led = LEDx("led")
- flash = LEDFlash()
- flash.ObjectLED(led)
- flash.ExecLED()
复制代码
有点类似继承,但是装饰模式提供统一的函数,对象类不同,同一个函数完成的功能也不同。
|
|