Python原型模式
范桂飓 人气:0一、原型模式
原型是相对于复制、克隆而言的,但是不同于模板,模板创造出的东西是一模一样,而原型创造出的东西是允许存在差异化和个性化的。
原型模式的实现思路是:“深拷贝” 和 “属性更新”。定义一个原型,设计一个拷贝接口,不需要频繁实例化类,只需要拷贝。
优点:
- 减少因为对象实例化而产生的损耗,并实行动态装载。
二、应用场景
三、代码示例
要实现多个人的自我介绍,一般方法是每个人都创建一个对象,但是使用原型模式之后,只需要实例化一个对象(标准人),后面的人都已这个标准人为基础来实现个性化。
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()
加载全部内容