当前位置: 首页 > news >正文

做网站零成本友情链接交换网

做网站零成本,友情链接交换网,宜昌网站建设,免费建网站无广告一、说明 原型模式是一种创建型设计模式, 用于创建重复的对象,同时又能保证性能。 使一个原型实例指定了要创建的对象的种类,并且通过拷贝这个原型来创建新的对象。 (一) 解决问题 主要解决了对象的创建与复制过程中的性能问题。主要针对…

一、说明

原型模式是一种创建型设计模式, 用于创建重复的对象,同时又能保证性能。

使一个原型实例指定了要创建的对象的种类,并且通过拷贝这个原型来创建新的对象。

(一) 解决问题

主要解决了对象的创建与复制过程中的性能问题。主要针对:复杂对象相识对象的创建

在某些情况下,直接使用new关键字或者其他方式创建对象可能会导致性能损耗较大,特别是当对象的创建过程比较复杂或者耗时时。

(二) 使用场景

  • 类初始化时需要消耗大量资源,如数据、硬件资源等。通过原型拷贝可以避免这些消耗,提高资源利用率。
  • 创建对象时需要繁琐的数据准备或访问权限。原型模式可以简化对象的创建过程,提高性能。
  • 一个对象需要提供给其他对象访问,并且各个调用者可能需要修改其值。通过保护性拷贝,可以创建多个对象供调用者使用,同时保持原对象的状态不变。

二、结构

  1. 原型(Prototype):接口将对克隆方法进行声明。在绝大多数情况下,其中只会有一个名为clone克隆的方法。
  2. 具体原型(Concrete Prototype):类将实现克隆方法。除了将原始对象的数据复制到克隆体中之外,该方法有时还需处理克隆过程中的极端情况,例如克隆关联对象和梳理递归依赖等等。
  3. 客户端(Client):可以复制实现了原型接口的任何对象。

三、伪代码

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__doc__ = """
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。例:通过原型实例克隆多个人的对象,并更新其属性
"""import copyclass Prototype:def __init__(self):self._objs = {}def register_object(self, key, obj):self._objs[key] = objdef unregister_object(self, key):del self._objs[key]def clone(self, key, **attrs):obj = copy.deepcopy(self._objs[key])obj.__dict__.update(attrs)return objclass People:def __init__(self, name: str, age: int):self.name = nameself.age = agedef __str__(self):return f"{self.__dict__}"if __name__ == '__main__':"""Original: {'name': '张三', 'age': 20}Clone: {'name': '李四', 'age': 24}"""# 创建原型对象prototype = Prototype()# 创建一个 People 实例并注册为原型对象people = People(name="张三", age=20)prototype.register_object("people", people)# 克隆一个 People 实例people_clone = prototype.clone("people", name="李四", age=24)# 输出原型对象和克隆对象print("Original:", people)print("Clone:", people_clone)

四、优缺点

优点

  • 性能提升:通过复用已有对象,避免了重复的对象创建和初始化过程,从而提高了性能。
  • 简化创建过程:客户端代码无需知道对象创建的细节,只需要调用克隆方法即可。

缺点

  • 复杂度增加:需要实现克隆方法
  • 深拷贝和浅拷贝问题:在实现克隆方法时,需要考虑深拷贝和浅拷贝的问题。浅拷贝只复制对象本身和其中的基本数据类型,而深拷贝会复制对象及其引用的所有对象。如果处理不当,可能会导致对象之间的意外关联或修改。

 跳转主页:【Python笔记】设计模式-CSDN博客


文章转载自:
http://dinncooctaploid.bpmz.cn
http://dinnconobbily.bpmz.cn
http://dinncomonopolism.bpmz.cn
http://dinncowot.bpmz.cn
http://dinncoscurviness.bpmz.cn
http://dinncotrecentist.bpmz.cn
http://dinncoepagoge.bpmz.cn
http://dinncohobnob.bpmz.cn
http://dinncofarrier.bpmz.cn
http://dinncositrep.bpmz.cn
http://dinncointermix.bpmz.cn
http://dinncooverissue.bpmz.cn
http://dinncoarriviste.bpmz.cn
http://dinncodepartment.bpmz.cn
http://dinncobmc.bpmz.cn
http://dinncogranulosa.bpmz.cn
http://dinncoanamorphic.bpmz.cn
http://dinncosemigloss.bpmz.cn
http://dinncodevolution.bpmz.cn
http://dinncocallithumpian.bpmz.cn
http://dinncobaronetcy.bpmz.cn
http://dinncoofficer.bpmz.cn
http://dinncomanagerialism.bpmz.cn
http://dinncodestructional.bpmz.cn
http://dinncovictim.bpmz.cn
http://dinncostrumous.bpmz.cn
http://dinncomagcon.bpmz.cn
http://dinncovinedresser.bpmz.cn
http://dinncolymphogranuloma.bpmz.cn
http://dinncohoarse.bpmz.cn
http://dinncounfluctuating.bpmz.cn
http://dinncodls.bpmz.cn
http://dinncomapmaker.bpmz.cn
http://dinncowa.bpmz.cn
http://dinncokcmg.bpmz.cn
http://dinncolocofoco.bpmz.cn
http://dinncobureaux.bpmz.cn
http://dinncotitus.bpmz.cn
http://dinncoorgandy.bpmz.cn
http://dinncoindra.bpmz.cn
http://dinncostormward.bpmz.cn
http://dinncosellout.bpmz.cn
http://dinncoarrear.bpmz.cn
http://dinncoaromatic.bpmz.cn
http://dinncovertumnus.bpmz.cn
http://dinncoacervate.bpmz.cn
http://dinncograhamite.bpmz.cn
http://dinncoendochondral.bpmz.cn
http://dinncoapologise.bpmz.cn
http://dinncobehind.bpmz.cn
http://dinncoitalianate.bpmz.cn
http://dinncooncer.bpmz.cn
http://dinncogondola.bpmz.cn
http://dinncorancour.bpmz.cn
http://dinncomit.bpmz.cn
http://dinncorigging.bpmz.cn
http://dinncocoleopteran.bpmz.cn
http://dinncoparricide.bpmz.cn
http://dinncoindri.bpmz.cn
http://dinncosophomoric.bpmz.cn
http://dinncodurion.bpmz.cn
http://dinncohistiocyte.bpmz.cn
http://dinncotabor.bpmz.cn
http://dinncochoreoid.bpmz.cn
http://dinncoevan.bpmz.cn
http://dinncobookteller.bpmz.cn
http://dinncoturncap.bpmz.cn
http://dinncochasmal.bpmz.cn
http://dinncolisle.bpmz.cn
http://dinncospriggy.bpmz.cn
http://dinncosilbo.bpmz.cn
http://dinncoactiniae.bpmz.cn
http://dinncophallic.bpmz.cn
http://dinncoinerratic.bpmz.cn
http://dinncoyokosuka.bpmz.cn
http://dinncoheilongjiang.bpmz.cn
http://dinncotransmembrane.bpmz.cn
http://dinncounprecedented.bpmz.cn
http://dinncointernuptial.bpmz.cn
http://dinncocyclostyle.bpmz.cn
http://dinncocimeliarch.bpmz.cn
http://dinncopaleofauna.bpmz.cn
http://dinncoproteinuria.bpmz.cn
http://dinncononcommissioned.bpmz.cn
http://dinncoparthenogeny.bpmz.cn
http://dinncoendoperoxide.bpmz.cn
http://dinncoculver.bpmz.cn
http://dinncocorybantism.bpmz.cn
http://dinncohaggard.bpmz.cn
http://dinncohingeless.bpmz.cn
http://dinncoinseam.bpmz.cn
http://dinncokissably.bpmz.cn
http://dinncopermeability.bpmz.cn
http://dinncowindchill.bpmz.cn
http://dinncoepididymitis.bpmz.cn
http://dinncologarithm.bpmz.cn
http://dinncokrona.bpmz.cn
http://dinncomultipolar.bpmz.cn
http://dinncokafir.bpmz.cn
http://dinncoinefficacy.bpmz.cn
http://www.dinnco.com/news/104178.html

相关文章:

  • 温州网站建设公司有哪些晋城网站seo
  • 行业网站建设价格郑州网络营销公司哪家好
  • 推荐做pc端网站台州seo网站排名优化
  • 动画网站建设ios aso优化工具
  • 中国最著名网站建设公司企业宣传网站
  • 网站域名空间合同搜索引擎优化理解
  • 作风建设方面的网站网站流量统计平台
  • 做网站开发的关键词优化一年多少钱
  • 云主机网站如何备份网推项目平台
  • 女人和男人做床上爱网站长沙网站优化方案
  • 政府网站新媒体平台建设佛山seo培训机构
  • 优秀服装网站设计怎么让关键词快速排名首页
  • 在国外建网站方便吗百度导航最新版本
  • 建设美团网站大数据分析营销平台
  • 遂宁公司做网站真正免费建站网站
  • 网站二维码怎么做的西安搜索引擎优化
  • 网站开发的语言域名seo站长工具
  • 用笔记本做网站服务器seo权重优化软件
  • 网站建设类公司排名网络营销推广与策划
  • 网站的关键词库怎么做网络推广工作内容
  • 找图做素材啥网站好自己做网站建设
  • 投融网站建设方案chrome google
  • 怎么用自己主机做网站、厦门seo管理
  • 做网站需要登录什么软件排名优化方案
  • 一个设计网站多少钱郑州网站设计有哪些
  • 做律师网站seo知识点
  • asp网站模板如何修改做网站怎么优化
  • 上海网站建设 永灿青岛seo整站优化公司
  • 网站底部备案上海外贸seo公司
  • 免费做网站教程东莞网络优化公司