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

 更新时间:2022年02月16日 08:45:36   作者:范桂飓  
这篇文章主要介绍了Python原型模式,原型模式即Prototype Pattern,指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,下面我们就来看具体的介绍内容吧,希望对你的学习有所帮助

一、原型模式

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

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

优点:

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

二、应用场景

三、代码示例

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

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 DataFrame 设置输出不显示index(索引)值的方法

    Python DataFrame 设置输出不显示index(索引)值的方法

    今天小编就为大家分享一篇Python DataFrame 设置输出不显示index(索引)值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Django基础知识 web框架的本质详解

    Django基础知识 web框架的本质详解

    这篇文章主要介绍了Django基础知识 web框架的本质详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python中的闭包总结

    Python中的闭包总结

    这篇文章主要介绍了Python中的闭包总结,本文讲解了闭包的概念、为什么使用闭包、使用闭包实例等内容,需要的朋友可以参考下
    2014-09-09
  • PyTorch梯度下降反向传播

    PyTorch梯度下降反向传播

    这篇文章主要介绍了PyTorch反向传播,反向传播的目的是计算成本函数C对网络中任意w或b的偏导数,下文更多详细内容叙述需要的小伙伴可以参考一下
    2022-03-03
  • Python遍历字典方式就实例详解

    Python遍历字典方式就实例详解

    这篇文章主要介绍了Python遍历字典方式就实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python实现ID3决策树算法

    python实现ID3决策树算法

    这篇文章主要为大家详细介绍了python实现ID3决策树算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 用Python编写生成树状结构的文件目录的脚本的教程

    用Python编写生成树状结构的文件目录的脚本的教程

    这篇文章主要介绍了用Python编写生成树状结构的文件目录的脚本的教程,是一个利用os模块下各函数的简单实现,需要的朋友可以参考下
    2015-05-05
  • 深入Python函数编程的一些特性

    深入Python函数编程的一些特性

    这篇文章主要介绍了更为深入的Python函数编程的一些特性,本文来自于IBM官方开发者技术文档,需要的朋友可以参考下
    2015-04-04
  • python 安装virtualenv和virtualenvwrapper的方法

    python 安装virtualenv和virtualenvwrapper的方法

    下面小编就为大家带来一篇python 安装virtualenv和virtualenvwrapper的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • python print 格式化输出,动态指定长度的实现

    python print 格式化输出,动态指定长度的实现

    这篇文章主要介绍了python print 格式化输出,动态指定长度的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论