查看: 1195|回复: 5
打印 上一主题 下一主题

【设计模式玩pyBoard】3.装饰模式

[复制链接] qrcode

30

主题

35

帖子

106

积分

注册会员

Rank: 2

积分
106
楼主
跳转到指定楼层
发表于 2016-6-2 08:47 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LiuYang 于 2016-6-2 09:04 编辑

    装饰模式:动态地为对象增加额外的功能。
    代码:

  1. import pyb

  2. class LEDx:
  3.         def __init__(self, ledname):
  4.                 self.name = ledname
  5.         def ExecLED(self):
  6.                 pyb.LED(3).on()
  7.                 pyb.delay(500)
  8.                 pyb.LED(3).off()
  9.                 pyb.delay(500)

  10. class LEDObj(LEDx):
  11.         obj = None
  12.         def __init__(self):
  13.                 pass
  14.         def ObjectLED(self, c):
  15.                 self.obj = c
  16.         def ExecLED(self):
  17.                 if (self.obj != None):
  18.                         self.obj.ExecLED()
  19.                        
  20. class LEDFlash(LEDObj):
  21.         def __init__(self):
  22.                 pass
  23.         def ExecLED(self):
  24.                 self.obj.ExecLED()
  25.                 pyb.LED(4).on()
  26.                 pyb.delay(500)
  27.                 pyb.LED(4).off()
  28.                 pyb.delay(500)
  29.        

  30. if __name__ == "__main__":
  31.         led = LEDx("led")
  32.         flash = LEDFlash()
  33.         flash.ObjectLED(led)
  34.         flash.ExecLED()
复制代码




    有点类似继承,但是装饰模式提供统一的函数,对象类不同,同一个函数完成的功能也不同。


回复

使用道具 举报

0

主题

98

帖子

16

积分

新手上路

Rank: 1

积分
16
沙发
发表于 2016-6-2 08:57 AM | 只看该作者
z装饰啥的?
回复 支持 反对

使用道具 举报

0

主题

69

帖子

14

积分

新手上路

Rank: 1

积分
14
板凳
发表于 2016-6-2 08:59 AM | 只看该作者
灵澈 发表于 2016-6-2 08:57
z装饰啥的?

代码发不出来啊,发了好多遍了,就这个不行
回复 支持 反对

使用道具 举报

0

主题

75

帖子

2

积分

新手上路

Rank: 1

积分
2
地板
发表于 2016-6-2 09:01 AM | 只看该作者
灵澈 发表于 2016-6-2 08:57
z装饰啥的?

正在一条语句一条语句的排除,看哪个不让发,累死我了。
回复 支持 反对

使用道具 举报

0

主题

73

帖子

6

积分

新手上路

Rank: 1

积分
6
5#
发表于 2016-6-2 03:19 PM | 只看该作者
切个图上传呗,调试过的代码也不用验证了
回复 支持 反对

使用道具 举报

0

主题

100

帖子

44

积分

新手上路

Rank: 1

积分
44
6#
发表于 2016-6-2 06:23 PM | 只看该作者
灵澈 发表于 2016-6-2 15:19
切个图上传呗,调试过的代码也不用验证了

图片没办法拷贝,别人用的时候还得往里敲
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表