`
李科笠
  • 浏览: 64451 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

单例模式 简析

 
阅读更多

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类

 

每台计算机可以有若干个打印机,但只能有一个Printer Spooler以避免两个打印作业同时输出到打印机中。每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。 

问题描述:

        单例模式 Singleton Pattern

问题解决:

1)单例模式简介:

Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。

单例模式特点:

    1.1)一个类有且仅有一个实例

    1.2)类提供一个全局的访问点

        2)单例模式的实现:

2.1)简单实现:


 

上述实现的优点:

          1)直到对象要求时,才进行实例的初始化,这种实现方法称为:惰性实例化,惰性实例化,避免了程序启动时创建不必要的Singleton

上述实现的缺点:

           1)这种实现对于多线程环境并不安全,可能实例化多个对象,例如可能存在两个线程进行instance==null的判断,然后创建两个单例对象,这就违背了单例模式的设计意图。

    2.2)安全的线程:


 

以上的实现保证了单例对象在多线程的情况下只会创建一个,但是padlock增加了额外的开销

    2.3)双重锁定


 

        这种实现方式对多线程来说是安全的,同时线程不是每次都加锁,只有判断对象实例没有被创建时它才加锁,有了我们上面第一部分的里面的分析,我们知道,加锁后还得再进行对象是否已被创建的判断。它解决了线程并发问题,同时避免在获取 Instance 的调用中都出现独占锁定。它还允许您将实例化延迟到第一次访问对象时发生。实际上,应用程序很少需要这种类型的实现。大多数情况下我们会用静态初始化。这种方式仍然有很多缺点:无法实现延迟初始化。

2.4)静态初始化


 

        此实现中,将在第一次引用类的任何成员创建实例,该类标记为 sealed 以阻止发生派生,而派生可能会增加实例。此外,变量标记为 readonly,这意味着只能在静态初始化期间(此处显示的示例)或在类构造函数中分配变量。它仍然可以用来解决 Singleton 模式试图解决的两个基本问题:全局访问和实例化控制。公共静态属性为访问实例提供了一个全局访问点。此外,由于构造函数是私有的,因此不能在类本身以外实例化 Singleton 类;因此,变量引用的是可以在系统中存在的唯一的实例。

由于 Singleton 实例被私有静态成员变量引用,因此在类首次被对 Instance 属性的调用所引用之前,不会发生实例化。这种方法唯一的潜在缺点是,您对实例化机制的控制权较少。在 Design Patterns 形式中,您能够在实例化之前使用非默认的构造函数或执行其他任务。由于在此解决方案中由 .NET Framework 负责执行初始化,因此您没有这些选项。在大多数情况下,静态初始化是在 .NET 中实现 Singleton 的首选方法。

     2.5)延迟初始化:


 

        3)单例模式的优缺点:



 

        4)单例模式适用情况和应用场景:



 

        5)具体实例:

总结:

        Singleton设计模式是一个非常有用的机制,可用于在面向对象的应用程序中提供单个访问点。

 

 

  • 大小: 20.4 KB
  • 大小: 18.8 KB
  • 大小: 21.6 KB
  • 大小: 11.5 KB
  • 大小: 13.8 KB
  • 大小: 22.3 KB
  • 大小: 14.9 KB
分享到:
评论

相关推荐

    Discuz!NT 缓存设计简析

    3. 单例模式:单例模式确保一个类只有一个实例,提供了全局访问点。在缓存设计中,可能用到单例模式来确保所有缓存操作都共享同一实例,从而保证数据一致性并避免资源浪费。 4. 跨Web园共享数据:在分布式环境或多...

    LBS商业模式简析

    ### LBS商业模式简析 随着移动互联网技术的快速发展,基于地理位置的服务(Location-Based Services, LBS)已经成为一种重要的商业形态。LBS通过获取用户的位置信息,为用户提供个性化服务,涉及领域广泛,包括但不...

    我国民营经济发展模式简析实用.pdf

    我国民营经济发展模式简析实用.pdf

    PPP、BOT、BT、TOT、BTO模式简析.docx

    PPP、BOT、BT、TOT、BTO 模式简析 PPP 模式是公私合作(Public-Private Partnership)的缩写,指的是政府和私营企业之间的合作关系,以实现某一公共基础设施项目的投资、建设和运营。PPP 模式的内涵包括项目的设计...

    跨境电商人才培养模式简析.pdf

    跨境电商人才培养模式简析.pdf

    B2B商业模式简析.docx

    【B2B商业模式简析】 B2B(Business-to-Business)商业模式是指企业与企业之间通过互联网进行的商品和服务交易。这种模式在21世纪初随着电子商务的兴起和发展,逐渐成为企业间互动的重要形式。在B2B模式下,企业...

    阿里巴巴模式管理简析.pdf

    阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf阿里巴巴模式管理简析.pdf

    国外技术交易平台运营模式简析.pdf

    国外技术交易平台运营模式简析的知识点: 1. 技术交易平台概述:国外技术交易平台主要通过网络平台展示技术供需信息,类似“技术展板”的形式,平台本身在技术交易中扮演着信息中介的角色。这些平台通常需要大量...

    华夏幸福基业模式简析.docx

    华夏幸福基业模式简析 华夏幸福基业,成立于1998年,是一家专注于产业新城建设和运营的公司。公司在2021年9月通过A股借壳上市,早期以城市住宅开发为主,但随着2002年固安工业园区的运营,企业逐步转型为工业园区域...

    万达商业地产基本模式简析.docx

    《万达商业地产基本模式简析》 万达商业地产的成功模式在于其独特的商业策略,即把二楼以上的楼层租赁给全球500强的商业服务企业,如沃尔玛、欧倍德、华纳时代等,同时将一楼划分为外街铺和内街铺进行销售。这种...

    城镇房地产融资模式简析.pptx

    【城镇房地产融资模式简析】 城镇房地产开发是一个资本密集型行业,其融资模式的设计和选择对项目的成功至关重要。融资模式涉及到计划、结构、风险和成本等多个方面,旨在确保项目的顺利进行并平衡各利益相关者的...

    联想集团经营模式简析.doc

    联想集团是中国知名的高科技企业,其经营模式值得深入分析。成立于1984年,联想由最初的11名科技人员发展成为全球个人电脑市场的领导者。在企业发展历程中,联想经历了创业、多元化发展和国际化战略三个主要阶段。 ...

    教育行业周随笔:一对一教培模式简析.rar

    《教育行业周随笔:一对一教培模式简析》这篇文档深入探讨了当前教育行业中备受关注的一对一教学培训模式。一对一教培模式是近年来在K-12教育领域中兴起的一种个性化教学方式,它强调根据每个学生的个体差异进行定制...

    海尔管理模式简析.doc

    海尔管理模式是全球知名家电企业海尔集团在长期发展过程中形成的一套独特的管理理念和运营策略。这套模式在不同阶段有不同的侧重,但始终围绕着用户需求、创新和员工自主性为核心。 首先,海尔的企业概要展示了其从...

    自动化集装箱码头堆场布置模式简析_熊玲燕1

    "自动化集装箱码头堆场布置模式简析" 本文对自动化集装箱码头堆场布置模式进行了比较分析,旨在提高集装箱码头的自动化水平,降低单位能耗,减少生产安全隐患,人力资源节省显著,环保效果良好。 自动化集装箱码头...

    顺丰速运公司经营模式简析.doc

    ### 顺丰速运公司经营模式简析 #### 一、顺丰速运整体经营模式分析 顺丰速运作为中国速运行业的领军企业之一,自成立以来迅速发展壮大,成为行业内的佼佼者。其经营模式具有一定的独特性和先进性。 1. **经营模式...

    区域奖励模式简析.doc

    【区域奖励模式】是企业在管理过程中为了激励员工和团队,特别是在多区域运营的企业中,确保公平性和效率性而设立的一种绩效考核与奖励机制。在分析区域奖励模式时,首要原则是公平,这需要一个完善的考核体系来支撑...

    城镇房地产融资模式简析-141PPT.pptx

    【城镇房地产融资模式简析】 城镇房地产开发是一个资本密集型行业,其融资模式的设计和选择对项目的成功至关重要。融资模式主要包括资本金和债务资金两大部分,涉及到融资计划、资金结构、风险管理和成本控制等多个...

    互联网环境下物业管理公司创新商业模式简析.pdf

    面对新时代的需求,传统物业管理公司的商业模式已经无法满足人们的实际需要,因此亟需进行创新和调整。物业管理公司的创新商业模式,主要通过利用互联网技术,实现线上线下的互动和互补,进而提升服务质量和市场竞争...

Global site tag (gtag.js) - Google Analytics