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

京东联盟网站建设电脑版深圳金融网站建设

京东联盟网站建设电脑版,深圳金融网站建设,中国建设报官方网站,免费不需要登录的手游一、说明 享元模式是一种结构型设计模式#xff0c;它摒弃了在每个对象中保存所有数据的方式#xff0c;通过共享多个对象所共有的相同状态#xff0c;让你能在有限的内存容量中载入更多对象。 (一) 解决问题 旨在减少大量相似对象创建时的内存开销 (二) 使用场景 大量… 一、说明 享元模式是一种结构型设计模式它摒弃了在每个对象中保存所有数据的方式通过共享多个对象所共有的相同状态让你能在有限的内存容量中载入更多对象。 (一) 解决问题 旨在减少大量相似对象创建时的内存开销 (二) 使用场景 大量相似对象的创建且没有足够的内存容量时对象的大部分状态可以外部化一个对象的大部分状态可以外部化即可以从外部传入对象的状态而对象自身只需保存少量的内部状态时 二、结构 享元模式只是一种优化。在应用该模式之前你要确定程序中存在与大量类似对象同时占用内存相关的内存消耗问题并且确保该问题无法使用其他更好的方式来解决。享元Flyweight类包含原始对象中部分能在多个对象中共享的状态。同一享元对象可在许多不同情景中使用。享元中存储的状态被称为“内在状态”。传递给享元方法的状态被称为“外在状态”。情景Context类包含原始对象中各不相同的外在状态。情景与享元对象组合在一起就能表示原始对象的全部状态。通常情况下原始对象的行为会保留在享元类中。因此调用享元方法必须提供部分外在状态作为参数。但你也可将行为移动到情景类中然后将连入的享元作为单纯的数据对象。客户端Client负责计算或存储享元的外在状态。在客户端看来享元是一种可在运行时进行配置的模板对象具体的配置方式为向其方法中传入一些情景数据参数。享元工厂FlyweightFactory会对已有享元的缓存池进行管理。有了工厂后客户端就无需直接创建享元它们只需调用工厂并向其传递目标享元的一些内在状态即可。工厂会根据参数在之前已创建的享元中进行查找如果找到满足条件的享元就将其返回如果没有找到就根据参数新建享元。 三、伪代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- __doc__ 享元模式例游戏程序中相同类型的子弹可以共享同一个对象从而节省内存资源。 class Bullet:子弹类def __init__(self, bullet_type):self.bullet_type bullet_typedef fire(self, speed, position):print(f以 {speed} 的速度向 {position} 发射 {self.bullet_type})class BulletFactory:子弹工厂类_bullets {}staticmethoddef get_bullet(bullet_type):if bullet_type not in BulletFactory._bullets:bullet Bullet(bullet_type)BulletFactory._bullets[bullet_type] bulletelse:bullet BulletFactory._bullets[bullet_type]return bulletif __name__ __main__:以 1000 的速度向 (100, 200) 发射 子弹以 1500 的速度向 (150, 250) 发射 子弹以 2000 的速度向 (200, 300) 发射 炮弹TrueFalsebullet1 BulletFactory.get_bullet(子弹)bullet2 BulletFactory.get_bullet(子弹)bullet3 BulletFactory.get_bullet(炮弹)bullet1.fire(1000, (100, 200))bullet2.fire(1500, (150, 250))bullet3.fire(2000, (200, 300))print(bullet1 is bullet2)print(bullet1 is bullet3)四、优缺点 优点 减少内存消耗提高性能减少了对象的创建和销毁次数 缺点 可能引入额外的复杂性在某些情况下为了实现对象的共享和状态的管理可能需要引入额外的复杂性增加了系统的理解和维护难度。对外部状态的管理可能会带来线程安全问题如果共享对象的外部状态需要被多个线程修改可能会引入线程安全问题需要进行额外的处理来保证线程安全。 跳转主页【Python笔记】设计模式-CSDN博客
http://www.zqtcl.cn/news/223127/

相关文章:

  • 站内seo和站外seo区别wordpress演示数据
  • 建设旅游网站财务分析创意设计公司网站
  • 张家港网站优化wordpress调用图片上传
  • 做网站要商标吗房产网站 设计方案
  • 做网站的费用怎么做账客户案例 网站建设
  • 怎么查询网站的备案号城乡建设杂志网站
  • 婚恋网站哪家做的最好北斗导航2022最新版手机版
  • 别墅效果图网站重庆金融公司网站建设
  • 中兴能源建设有限公司网站企业营销策划及推广
  • 外贸英文网站制作WordPress对接微信公众号
  • 推广网站建设花费得多少钱哪些平台可以发布软文
  • wordpress网站检测购物app大全
  • 遵义建设厅官方网站 元丰兰州网站设计有限公司
  • 芜湖做网站的公司排名贵阳好的网站建设公司
  • 网站建设 骏域网站建设专家最有效的15个营销方法
  • 大连品牌官网建站为什么有些网站更新的信息看不到
  • 富阳市网站域名申请好了怎么做网站
  • 做药物分析必须知道的网站网站攻击一般有那些
  • 一般网站做哪些端口映射那个网站做境外自由行便宜
  • 网站的建站过程公司seo是什么意思
  • 胜利油田局域网主页入口seo自学网官网
  • 阜阳网站是网站开发与设计专业
  • 网站建设哪个品牌好网站新备案不能访问
  • 网站备案号申请流程华为企业文化
  • 服装网站目标互联网舆情报告
  • 1.网站开发的详细流程电商网站开发文档
  • 域名估价网站制作网站需要注意什么
  • 新浪云虚拟主机做电影网站用什么l软件做网站了
  • 方城网站建设猴痘的治疗方法
  • 做响应式网站有什么插件哔哩哔哩免费安装