Python设计模式之原型模式实例详解

  

本文实例讲述了Python设计模式之原型模式。分享给大家供大家参考,具体如下:

  

原型模式(原型模式):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

  

一个原型模式的简单演示:

        # !/usr/bin/env python   # - * -编码:utf - 8 - *   __author__=鞍驳稀?   ”“”   大话设计模式   设计模式,原型模式   原型模式(原型模式):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象   原型模式是用场景:需要大量的基于某个基础原型进行微量修改而得到新原型时使用   ”“”   从复制进口复制,deepcopy   #原型抽象类   类原型(对象):   def克隆(自我):   通过   def deep_clone(自我):   通过   #工作经历类   类吧(对象):   def __init__(自我):   自我。timearea="   self.company="   def set_workexperience(自我、timearea公司):   自我。timearea=timearea   self.company=公司   #简历类   类的简历(原型):   def __init__(自我、名称):   self.name=名字   自我。吧=吧()   def set_personinfo(自我、性别、年龄):   自我。=性   自我。年龄=年龄   通过   def set_workexperience(自我、timearea公司):   self.workexperience。set_workexperience (timearea公司)   def显示(自我):   打印self.name   打印的自我。性,self.age   打印的工作经历’,self.workexperience。timearea, self.workexperience.company   def克隆(自我):   返回副本(自我)   def deep_clone(自我):   返回deepcopy(自我)   if __name__==癬_main__”:   其中obj1=简历(“安迪”)   methoda=obj1.clone() #浅拷贝对象   obj3=obj1.deep_clone() #深拷贝对象   obj1.set_personinfo(男,28)   obj1.set_workexperience (“2010 - 2015”、“AA”)   obj2.set_personinfo(男,27岁)   obj2.set_workexperience (“2011 - 2017”、“AA”) #修改浅拷贝的对象工作经历   obj3.set_personinfo(男,29岁)   obj3.set_workexperience (“2016 - 2017”、“AA”) #修改深拷贝的对象的工作经历   obj1.display ()   obj2.display ()   obj3.display ()      之前      

运行结果:

  
  安迪


  男28
  工作经历2011 - 2017 AA
  安迪
  男27
  工作经历2011 - 2017 AA
  安迪
  男29日
  工作经历2016 - 2017 AA

     

上面类的设计如下图:

  

 Python设计模式之原型模式实例详解

  

简历类简历继承抽象原型的克隆和deepclone方法,实现对简历类的复制,并且简历类引用工作经历类,可以在复制简历类的同时修改局部属性

  

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python套接字编程技巧总结》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

  

希望本文所述对大家Python程序设计有所帮助。

Python设计模式之原型模式实例详解