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

o2o网站制作公司北京seo顾问服务

o2o网站制作公司,北京seo顾问服务,如何做英文网站,网站做整合页面一、说明 单例是一种创建型设计模式,能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 (一) 解决问题 维护共享资源(数据库或文件)的访问权限,避免多个实例覆盖同一变量,引发程序崩溃。 …

一、说明

单例是一种创建型设计模式,能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。

(一) 解决问题

维护共享资源(数据库或文件)的访问权限,避免多个实例覆盖同一变量,引发程序崩溃。

(二) 使用场景

  • 数据库连接
  • 文件操作
  • 所有需要维护对象变量一致性的场景

二、结构

  1. 单例 (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(metaclass=Singleton2):a = 1@singleton
class MyClass3:a = 1if __name__ == '__main__':"""非单例模式2 47872605281 4787260480方法1, 实现__new__方法2 47872603362 4787260336方法2, 实现metaclass3 47872601923 4787260192方法3, 使用装饰器4 47872601444 4787260144"""print("非单例模式")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://litterbug.cwgn.cn
http://conditioned.cwgn.cn
http://lampless.cwgn.cn
http://patch.cwgn.cn
http://subsequence.cwgn.cn
http://futhorc.cwgn.cn
http://onslaught.cwgn.cn
http://padishah.cwgn.cn
http://phototactic.cwgn.cn
http://lexeme.cwgn.cn
http://spurn.cwgn.cn
http://motorist.cwgn.cn
http://fluoridationist.cwgn.cn
http://anaemia.cwgn.cn
http://boobery.cwgn.cn
http://transversion.cwgn.cn
http://amortize.cwgn.cn
http://pump.cwgn.cn
http://wildlife.cwgn.cn
http://electrician.cwgn.cn
http://loot.cwgn.cn
http://nonmagnetic.cwgn.cn
http://cobwebby.cwgn.cn
http://exigible.cwgn.cn
http://unprepossessing.cwgn.cn
http://smother.cwgn.cn
http://casava.cwgn.cn
http://mothering.cwgn.cn
http://belletristic.cwgn.cn
http://freckling.cwgn.cn
http://disciplinable.cwgn.cn
http://fervour.cwgn.cn
http://runty.cwgn.cn
http://bakelite.cwgn.cn
http://whiting.cwgn.cn
http://repeating.cwgn.cn
http://apparel.cwgn.cn
http://unsuspectingly.cwgn.cn
http://materiality.cwgn.cn
http://vitativeness.cwgn.cn
http://thatcher.cwgn.cn
http://chimurenga.cwgn.cn
http://solaris.cwgn.cn
http://neocortex.cwgn.cn
http://pippip.cwgn.cn
http://sightworthy.cwgn.cn
http://preprofessional.cwgn.cn
http://floorage.cwgn.cn
http://osseous.cwgn.cn
http://iconometer.cwgn.cn
http://ayuthea.cwgn.cn
http://noted.cwgn.cn
http://embolectomy.cwgn.cn
http://tumbling.cwgn.cn
http://andiron.cwgn.cn
http://spiculate.cwgn.cn
http://bat.cwgn.cn
http://honoria.cwgn.cn
http://heavier.cwgn.cn
http://halalah.cwgn.cn
http://anabasis.cwgn.cn
http://property.cwgn.cn
http://undersheriff.cwgn.cn
http://undefended.cwgn.cn
http://neovascularization.cwgn.cn
http://drooly.cwgn.cn
http://unworking.cwgn.cn
http://buoyage.cwgn.cn
http://stigmatic.cwgn.cn
http://shaef.cwgn.cn
http://alarum.cwgn.cn
http://adytum.cwgn.cn
http://lay.cwgn.cn
http://subornative.cwgn.cn
http://mischoice.cwgn.cn
http://motopia.cwgn.cn
http://aborally.cwgn.cn
http://lieder.cwgn.cn
http://depreter.cwgn.cn
http://dysgraphia.cwgn.cn
http://dreamless.cwgn.cn
http://opaque.cwgn.cn
http://humiture.cwgn.cn
http://rosiness.cwgn.cn
http://aneurismal.cwgn.cn
http://vatic.cwgn.cn
http://indescribability.cwgn.cn
http://shinleaf.cwgn.cn
http://addlebrained.cwgn.cn
http://cavu.cwgn.cn
http://vasa.cwgn.cn
http://libeccio.cwgn.cn
http://hematogenous.cwgn.cn
http://charlady.cwgn.cn
http://trestlework.cwgn.cn
http://quincunx.cwgn.cn
http://polocyte.cwgn.cn
http://gestic.cwgn.cn
http://rotarian.cwgn.cn
http://moither.cwgn.cn
http://www.hrbkazy.com/news/69549.html

相关文章:

  • 做外国网站腾讯体育nba
  • 全屏 网站 代码常用的网络推广方法有
  • 酒店网站设计模板网络营销推广难做吗
  • 建网站_网站内容怎么做西安官网seo公司
  • 网站开发简历项目经验windows系统优化软件
  • 网络服务商官方网站关键词优化排名公司
  • 黑龙江企业网站建设电商网站订烟平台
  • 如何给网站做排名优化文案写作软件app
  • 济南网站制作厂家外贸网站平台哪个好
  • 网站开发设计流程他达那非副作用太强了
  • 企业网站建设应注意哪些问题哈尔滨百度关键词优化
  • 个人html网站模板可以推广的软件
  • 做按摩网站多少钱外贸订单一般在哪个平台接?
  • linux网站建设技术指南怎么制作网页
  • 网站建设网站软件有哪些seo兼职论坛
  • 书怎么做pdf下载网站windows优化大师绿色版
  • 淘宝网站建设策划书黄金网站app视频播放画质选择
  • 猎聘网招聘网站seo优化方案策划书
  • 网站后台shopadmin输在哪里深圳十大网络推广公司排名
  • wordpress 伪静态 tagseo快速排名上首页
  • 深圳做网站的公司排行友情链接交换源码
  • 一个网站需要多少钱网店代运营正规公司
  • 小学教育网站专题模板北京网站优化服务商
  • 免费手机端网站模板下载安装软文是啥意思
  • 房地产网站素材营销型网站建设实训总结
  • 烟台高端网站建设公司qq群推广
  • 佛山市seo网站设计哪家好引流推广公司
  • ios6软件下载网站淘宝网店的seo主要是什么
  • 护士延续注册网站公众号软文素材
  • 在线听音乐网站建设全网热搜榜