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

黑龙江建设网官方网站特种作业证北京seo公司华网白帽

黑龙江建设网官方网站特种作业证,北京seo公司华网白帽,wordpress网站 添加微信,暴富建站►单例模式 ►使用场景 在编写软件时,对于某些类来说,只有一个实例很重要。例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统中可以多次查询数据库,但是只需要一个连接&#x…

►单例模式

图片

►使用场景

在编写软件时,对于某些类来说,只有一个实例很重要。例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统中可以多次查询数据库,但是只需要一个连接,而不是每次查询都重新创建一个连接,因为重复创建数据库连接会浪费内存资源。因此这种情况下确保系统中某个对象的唯一性即一个类只能有一个实例非常重要。

如何保证一个类只有一个实例并方便访问呢?定义一个全局变量可以确保对象随时可以访问,但不能防止实例化多个对象。一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个访问该实例的方法。这就是单例模式的使用场景。

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

►python实现

python中实现单例模式的方法很多,常用方法如下:

重写__new__

类实例化时是调用__new__方法创建对象的,所以只要控制__new__方法创建对象是只生成一个实例即可。

class DB:instance = Nonedef __new__(cls, *args, **kwargs):if cls.instance is None:cls.instance = super().__new__(cls, *args, **kwargs)return cls.instance
db1 = DB()
db2 = DB()
print(db1)
print(db2)

 运行代码结果如下:

<__main__.DB object at 0x000001BD06E55F70><__main__.DB object at 0x000001BD06E55F70>

►装饰器

将类的唯一实例保存在类属性上,然后通过类装饰器,在实例化时检查这个属性来控制只生成一个实例。

def single_obj(cls):def wrapper(*args, **kwargs):if cls.instance is None:cls.instance = cls(*args, **kwargs)return cls.instancereturn wrapper@single_obj
class DB:instance = Nonedb1 = DB()
db2 = DB()
print(db1)
print(db2)

 运行代码结果如下:

<__main__.DB object at 0x000001E485395970>
<__main__.DB object at 0x000001E485395970>

►元类

python中元类是用于创建类对象的类,类对象创建实例对象时一定会调用__call__方法,因此重写元类的__call__方法,保证在调用__call__时只创建一个实例即可。

class SingleObj(type):def __call__(cls, *args, **kwargs):if getattr(cls, 'instance', None) is None:cls.instance = super().__call__(*args, **kwargs)return cls.instanceclass DB(metaclass=SingleObj):passdb1 = DB()
db2 = DB()print(db1)
print(db2)

代码运行结果如下:

<__main__.DB object at 0x00000252D5AE4F70>
<__main__.DB object at 0x00000252D5AE4F70>

http://www.zhongyajixie.com/news/26727.html

相关文章:

  • 环保网站 怎么做站内营销推广方式
  • beego框架做的网站seo案例分析
  • 关于做一动物网站的界面个发布软文的平台有哪些
  • 哈尔滨优化网站方法收录网
  • 网页制作个人简介页面模板排名优化网站建设
  • 旅游分析 网站谷歌推广优化
  • 可以免费建立网站吗关键词语有哪些
  • wordpress连接微博 破解aso关键词排名优化是什么
  • 网站建设专业公司哪家好产品软文范例500字
  • 做网站广告公司百度贴吧网页版
  • 自己做网站如何挣钱seo是什么牌子
  • 有关做内购的网站网络营销和直播电商专业学什么
  • 给赌博人做网站windows优化大师靠谱吗
  • 网站开发筛子游戏重庆百度地图
  • 枣庄市住房和建设局网站seo怎么推广
  • 晋中城市建设招标网站旅游网站的网页设计
  • 做本地房产网站百度站长工具网站提交
  • 网站建设教程pdf下载短视频seo是什么
  • 有个人免费网站吗苹果cms永久免费建站程序
  • 门户网站管理建设seo优化工具
  • 网站推广公司网站链交换反应
  • 网站弹窗页面是谁做的全网营销整合营销
  • 学做网站需要哪几本书百度网盘网页登录入口
  • 沙田仿做网站网络推广外包业务怎么样
  • 网站开发多用什么语言index百度指数
  • 郑州做网站服务器谷歌官方app下载
  • 济南网站制作服务价格排名优化哪家好
  • 做网站必须原创吗怎么弄一个自己的网站
  • 可以做哪些网站有哪些百度免费推广怎么做
  • 最近韩国电影片免费韩国在线观看移投界seo