• 原型模式


    原型模式

     

    模式说明

    所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

    说到复制,就会有深/浅两种复制,这是面向对象的值类型和引用类型的差异,具体不作说明

    模式结构图

    程序示例

    说明:无

    代码:

    复制代码
     1 import copy
     2 class WorkExp:
     3     place=""
     4     year=0
     5     def __init__(self,p,y):
     6         self.place=p
     7         self.year=y
     8 
     9 class Resume(WorkExp):
    10     name = ''
    11     age = 0
    12     def __init__(self,n):
    13         self.name = n
    14     def SetAge(self,a):
    15         self.age = a
    16     def SetWorkExp(self,exp):
    17         self.place = exp.place
    18         self.year = exp.year
    19     def Display(self):
    20         print 'at %s, %s was %s years old,he studied in %s' %(self.year, self.name, self.age,self.place)
    21 
    22     def Clone(self):
    23         return self
    24 
    25 if __name__ == "__main__":
    26     a = Resume("wang")
    27     b = a.Clone()
    28     c = copy.copy(a)
    29     d = copy.deepcopy(a)
    30     a.SetAge(7)
    31     b.SetAge(13)
    32     c.SetAge(16)
    33     d.SetAge(19)
    34 
    35     exp_a = WorkExp('primaryschool',1994)    
    36     exp_b = WorkExp('middleschool',2000)
    37     exp_c = WorkExp('highschool',2003)
    38     exp_d = WorkExp('university',2006)
    39 
    40     a.SetWorkExp(exp_a)
    41     b.SetWorkExp(exp_b)
    42     c.SetWorkExp(exp_c)
    43     d.SetWorkExp(exp_d)
    44     a.Display()
    45     b.Display()
    46     c.Display()
    47     d.Display()
    复制代码

    运行结果:

    参考来源:

    http://www.cnblogs.com/chenssy/p/3679190.html

    http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html

    http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html

  • 相关阅读:
    外观模式
    享元模式
    装饰模式
    适配器模式
    组合模式
    典型用户模板与场景
    知识圈APP开发记录(十二)
    知识圈APP开发记录(十一)
    知识圈APP开发记录(十)
    周总结(七)
  • 原文地址:https://www.cnblogs.com/Siny0/p/11156041.html
Copyright © 2020-2023  润新知