开发者

Python设计模式创建型原型模式

开发者 https://www.devze.com 2022-12-11 09:55 出处:网络 作者: 范桂飓
目录一、原型模式二、应用场景三、代码示例一、原型模式 原型是相对于复制、克隆而言的,但是不同于模板,模板创造出的东西是一模一样,而原型创造出的东西是允许存在差异化和个性化的。
目录
  • 一、原型模式
  • 二、应用场景
  • 三、代码示例

一、原型模式

原型是相对于复制、克隆而言的,但是不同于模板,模板创造出的东西是一模一样,而原型创造出的东西是允许存在差异化和个性化的。

原型模式的实现思路是:“深拷贝” 和 “属性更新”。定义一个原型,设计一个拷贝接口,不需要频繁实例化类,只需要拷贝。

优点:

  • 减少因为对象实例化而产生的损耗,并实行动态装载。

二、应用场景

Python设计模式创建型原型模式

三、代码示例

要实现多个人的自我介绍,一般方法是每个人都创建一个对象,但是使用原型模式之后,只需要实例化一个对象(标准人),后面的人都已这个标准人为基础来实现个性化。

import copy


class Information:
  """个人信息"""

  def __init__(self):
    self.name = None
 编程客栈   self.ager = None
    self.heiwww.cppcns.comght = None编程客栈

  def run(self):
    """
    自我介绍方法
    :return:
    """
    print("我叫{}: 年龄:{} 身高:{}".format(self.name, self.ager, self.height))


class Prototype:
  def __init__(self, obj):
    self.copy_object = obj()

  def clone(self, **attr):
    obj = copy.deepcopy(self.copy_object)
    obj.__dict__.update(attr)
    return obj


if __name__ == '__main__':
  test = Prototype(Information)
  a = test.clone(name='张山', ager="30", heigh编程客栈t='170cm')
  a.run()
  b = test.clone(name='李飞', ager="20", height='190cm')
  b.run()

到此这篇关于python设计模式创建型原型模式的文章就介绍到这了,更多相关Python原型模式内容请搜索我http://www.cppcns.com们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号