好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

一、原型模式

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

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

优点:

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

二、应用场景

三、代码示例

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

import copy


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

? ? def __init__(self):
? ? ? ? self.name = None
? ? ? ? self.ager = None
? ? ? ? self.height = 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", height='170cm')
? ? a.run()
? ? b = test.clone(name='李飞', ager="20", height='190cm')
? ? b.run()

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

查看更多关于Python设计模式创建型原型模式的详细内容...

  阅读:50次