查看: 360|回复: 1
打印 上一主题 下一主题

【设计模式玩pyBoard】6.原型模式

[复制链接] qrcode

30

主题

48

帖子

138

积分

注册会员

Rank: 2

积分
138
楼主
跳转到指定楼层
发表于 2016-6-3 02:12 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    原型模式:用原型类的实例来指定创建新对象的种类,通过拷贝原型的方式创建新的对象。
    代码:

  1. import pyb, copy

  2. class LEDx:
  3.         def OnRed(self):
  4.                 pyb.LED(1).on()
  5.         def OnYellow(self):
  6.                 pyb.LED(2).on()
  7.         def OnGreen(self):
  8.                 pyb.LED(3).on()
  9.         def OnBlue(self):
  10.                 pyb.LED(4).on()
  11.         def Clone(self):
  12.                 return self

  13. if __name__ == "__main__":
  14.         a = LEDx()
  15.         b = a.Clone()
  16.         c = copy.copy(a)
  17.         d = copy.deepcopy(a)
  18.        
  19.         a.OnRed()
  20.         b.OnYellow()
  21.         c.OnGreen()
  22.         d.OnBlue()
复制代码

    用到了copy和deepcopy的方法,为了对比,类中添加了一个Clone的方法,其实就是返回了自身。
    注意,要用copy和deepcopy,需要安装micropython-lib,我没有安装,所以这个例子没有运行成功。
    micropython-lib的下载地址为:https://github.com/micropython/micropython-lib




回复

使用道具 举报

0

主题

91

帖子

6

积分

新手上路

Rank: 1

积分
6
沙发
发表于 2016-6-6 10:13 AM | 只看该作者
又没成功啊?刘总
回复 支持 反对

使用道具 举报

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

本版积分规则

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