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

美观网站建设哪家好北京seo地址

美观网站建设哪家好,北京seo地址,wordpress模板製作,网站代理软件一、说明 单例是一种创建型设计模式#xff0c;能够保证一个类只有一个实例#xff0c; 并提供一个访问该实例的全局节点。 (一) 解决问题 维护共享资源#xff08;数据库或文件#xff09;的访问权限#xff0c;避免多个实例覆盖同一变量#xff0c;引发程序崩溃。 … 一、说明 单例是一种创建型设计模式能够保证一个类只有一个实例 并提供一个访问该实例的全局节点。 (一) 解决问题 维护共享资源数据库或文件的访问权限避免多个实例覆盖同一变量引发程序崩溃。 (二) 使用场景 数据库连接文件操作所有需要维护对象变量一致性的场景 二、结构 单例 Singleton 类声明了一个名为get­Instance获取实例的静态方法来返回其所属类的一个相同实例。单例的构造函数必须对客户端 Client 代码隐藏。 调用获取实例方法必须是获取单例对象的唯一方式。 三、伪代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- __doc__ 单例模式 import threadingclass Singleton1:方法1, 实现__new__方法并在将一个类的实例绑定到类变量_instance上,如果cls._instance为None说明该类还没有实例化过,实例化该类,并返回如果cls._instance不为None,直接返回cls._instance_instance None_lock threading.Lock()def __new__(cls, *args, **kwargs):with cls._lock:if not cls._instance:cls._instance super().__new__(cls)return cls._instanceclass Singleton2(type):方法2,实现metaclass,利用metaclass在实例化时已经创建好实例,从而实现单例模式,注意必须通过metaclass实现_instances {}_lock threading.Lock()def __call__(cls, *args, **kwargs):with cls._lock:if cls not in cls._instances:cls._instances[cls] super().__call__(*args, **kwargs)return cls._instances[cls]def singleton(cls):方法3,使用装饰器_instance None_lock threading.Lock()def wrapper(*args, **kwargs):nonlocal _instancewith _lock:if _instance is None:_instance cls(*args, **kwargs)return _instancereturn wrapperclass MyClass:a 1class MyClass1(Singleton1):a 1class MyClass2(metaclassSingleton2):a 1singleton class MyClass3:a 1if __name__ __main__:非单例模式2 47872605281 4787260480方法1, 实现__new__方法2 47872603362 4787260336方法2, 实现metaclass3 47872601923 4787260192方法3, 使用装饰器4 47872601444 4787260144print(非单例模式)s1 MyClass()s2 MyClass()s1.a 2print(s1.a, id(s1))print(s2.a, id(s2))print()print(方法1, __new__方法实现)s1_1 MyClass1()s1_2 MyClass1()s1_1.a 2print(s1_1.a, id(s1_1))print(s1_2.a, id(s1_2))print()print(方法2, metaclass实现)s2_1 MyClass2()s2_2 MyClass2()s2_1.a 3print(s2_1.a, id(s2_1))print(s2_2.a, id(s2_2))print()print(方法3, 使用装饰器)s3_1 MyClass3()s3_2 MyClass3()s3_1.a 4print(s3_1.a, id(s3_1))print(s3_2.a, id(s3_2))四、优缺点 优点 实例唯一单例模式确保某个类只有一个实例这有助于节省内存因为只有一个对象实例在内存中。避免频繁创建和销毁对象由于单例对象只创建一次可以减少频繁的创建和销毁对象带来的性能开销。便于资源管理单例模式可以确保某个资源或服务在整个应用程序中只有一个实例方便对资源的统一管理和优化。提高性能和资源利用率单例模式可以避免对资源的重复占用从而提高性能和资源利用率。 缺点 难以测试和调试由于单例对象是全局唯一的其行为可能与其他对象存在耦合导致测试和调试困难。难以扩展单例对象通常只有一个实例如果需要扩展功能或增加复杂性可能会面临较大的挑战。线程安全问题在多线程环境下如果没有正确地实现线程同步可能会导致单例对象的实例化出现问题或产生竞态条件。过度使用可能会产生依赖和耦合如果过度使用单例模式可能会导致代码之间的耦合度过高不利于代码的维护和重构。
http://www.zqtcl.cn/news/14675/

相关文章:

  • 做网址导航网站潍坊知名网站建设价格
  • 商业网站建设知识点wordpress迁移后插件消失
  • 部队网站建设招标产品策划推广方案
  • 中文网站站内优化怎么做海外服务器官网
  • 有空间与域名后怎么做网站东莞官方网站 优帮云
  • 企业网站建设版本网页版微信怎么换行
  • 杭州网站设计公司电话无锡品牌学会网站建设
  • 怎样自己创造网站专业的网站制作公司
  • 创业水务公司网站济宁市环保局建设项目审批网站
  • 外链都没有的网站如何做排名的鸿星尔克的网络营销策略
  • 新的网站后台不显示网站栏目我网站建设
  • 网站搭建本地环境网站备案认领
  • 做类似淘宝的网站开发需要什么有域名 有固定ip怎么做网站
  • 禅城做网站北京网站搭建公司排行
  • 海外学校网站建设h5开发环境搭建
  • 找人做网站需要问哪些问题网站建设排名奇艺地域
  • 响应式网站 图片处理站长收录查询
  • 电商平台正在建设中网站页面提示网站建设如何推广
  • 中国人做英文网站android studio下载
  • 网站设计尺寸大小网站右下角浮动效果如何做
  • 网站建设情况调查表手机网站功能
  • 我公司是帮企业做网站的_现在要帮客户们的网站备案株洲网站建设 株洲网站制作
  • 制作公司网站价格做公司网站联系公司
  • 汕头网站制作网站梧州网站建设设计
  • 宁阳网站seo推广青岛网络营销网络推广介绍
  • 西部数码里面如何建设自己的网站北京天津网站建设公司
  • 郑州金水区做网站公司南宁cms建站
  • net大规模网站开发视频贵阳微信网站制作
  • 网络运营需要学什么沈阳百度快照优化公司
  • 网站反链接是什么意思工程施工项目管理软件