python做页面原型_4-Python与设计模式--原型模式

1. 层,如果你有使用平面设计软件类似于Photoshop,你必须知道的概念层。层提出的概念,这使得设计,图形修改和其他操作更方便。设计师不仅可以修改和绘制当前图像对象,但也让其他图像对象,明确逻辑并及时反馈。在本节中,我们将介绍以层为主角的原型模式。首先,设计一层对象。类simpleLayer:背景=(0,0,0,0)内容=\u201C空白\u201Ddef getContent(自我):returndef getBackgroud(自我):returndef油漆(自我、绘画):def setParent(自我,p): [3] = pdef fillBackground(自我):在实际的实现中,该层实现将会非常复杂。

RGBA的背景是由背景和内容是由内容。除了直接作画,也可以设置透明度。新建一个图层,填充蓝色的背景和画一只狗,它可以简单地表达如下:if __name__ = =\u201C__main__\u201D: dog_layer = simpleLayer () dog_(\u201C狗\u201D)dog_([0, 0255, 0])打印\u201C背景:dog_()打印\u201C画:\u201Cdog_()打印如下:背景:(0,0,255,0)绘画:狗,如果你又需要生成同一层,同样的颜色,同样如何画一个狗吗?仍然遵循的顺序创建新图层,填充背景,和绘画吗?也许你已经发现,这可以通过复制、克隆的作用是原型模式的本质。

在大多数编程语言中,深拷贝和浅拷贝的问题。一般来说,浅拷贝复制对象和其引用的内容或对象引用,但不会复制引用内容和对象本身;和深复制不仅复制引用对象和内容,而且复制引用内容。因此,通常比浅深复制更完整的复制,但它也占用更多的资源(包括时间和空间资源)。例如,下面的场景可以说明深拷贝和浅拷贝的区别。if __name__ = =\u201C__main__\u201D: dog_layer = simpleLayer () dog_(\u201C狗\u201D)dog_([0, 0255, 0])打印\u201C原始背景:dog_()打印\u201C原画:\u201Cdog_ () another_dog_layer = dog_ () another_dog_ (128) another_dog_(小狗)打印\u201C原始背景:dog_()打印\u201C原画:\u201Cdog_()打印\u201C复制背景:another_dog_()打印\u201C复制画:\u201Canother_dog_()打印如下:原始背景:(0,0,255,0)原画:DogOriginal背景:(0,0,255,128)原作:DogCopy背景:[0,0,255,128]复制画:小狗浅复制后,直接作用于复制的参考(数组),和原对象的引用的内容也将改变。

第二,原型模型的原型模型定义如下:使用原型实例创建指定类型的对象,并通过拷贝这些原型创建新的对象。有一点要注意的是,克隆操作后,新对象的构造函数不执行两次,和新对象的内容直接从内存复制。第三,原型模式的优点和使用场景的优势:1。优秀的性能,直接复制可以节省大量的资源比直接在内存中创建一个实例;2. 简化对象的创建,同时避免构造函数的约束,而直接从构造函数复制对象的限制自由是一个优势,但也有隐患。这仍然需要更多的关注。使用场景:1。在对象被修改,需要复制多个场景。如这个例子和其他一些场景涉及复制粘贴;2. 资源的情况需要优化。例如,如果您需要在内存中创建大量的实例,通过原型模型可以减少资源消耗。此时,原型模式和工厂模式可以实现好的结果是否在逻辑上或结构上;

一些重复和复杂的任务不需要多次执行。例如,对于一个设备的访问权限,多个对象不需要申请许可。设备适用于后,传递给信任对象的权限是通过原型模式,可以提高效率和节省资源。第四,原型模式1的缺点。深拷贝和浅拷贝的使用需要考虑提前;2. 在一些编程语言中,复制将影响使用静态变量和静态函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值