版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章,单例模式,刘伟刘维_,本章的教学内容,单例模式的模式动机和模式结构的定义,模式实例的分析,模式效果和应用模式扩展的分析,单例模式,模式动机对系统中的某些类非常重要,例如,一个系统中可以有多个打印任务,但只有一个工作任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或标识(序列号)发生器。单一模式,模式动机如何确保一个类只有一个实例,并且这个实例容易访问?定义一个全局变量可以确保对象可以在任何时候被访问,但是它不能阻止我们实例化多个对象。一个更好的解决方案是让类本身负责保持它的唯一实例。此类可以保证不创建其他实例,并且它可以提供访问此实例的方法。这是单例模式的模型动
2、机。Singleton模式,singleton pattern: singleton模式确保一个类只有一个实例,并实例化它自己,并将这个实例提供给整个系统。这个类被称为单例类,它提供了一个全局访问方法。单例模式有三个要点:首先,一个类只能有一个实例;其次,它必须自己创建这个实例;第三,它必须自己向整个系统提供这个例子。单一模式是一种对象创建模式。单一模式也称为单件模式或单一状态模式。单例模式,模式定义单例模式:确保一个类只有一个实例,并提供对它的全局访问点。使用频率:中高、singleton模式、模式结构、singleton模式和模式结构singleton模式具有以下角色:singleton、
3、singleton模式,模式分析Singleton模式的目的是确保一个类只有一个实例,并提供一个全局访问点来访问它。单例模式只包含一个角色,即单例。singleton类有一个私有构造函数,以确保用户不能通过新的关键字直接实例化它。此外,该模式包含一个静态私有成员变量和一个静态公共工厂方法,后者负责检查实例的存在并实例化自身,然后将其存储在静态成员变量中以确保只创建一个实例。单例模式,模式分析单例模式的实现代码如下:单例模式,在单例模式的模式分析实现过程中,应该注意以下三点:单例类的构造函数是私有的;提供自己的静态私有成员变量;提供公共静态工厂方法。单例模式、单例模式示例和分析示例1:身份证号码
4、在现实生活中,居民身份证号码是唯一的,同一个人不允许有多个身份证。首次申请身份证时,居民将被分配一个身份证号码。如因遗失或其他原因而重新发行,原身份证号码仍将使用,不会产生新号码。现在使用单例模式来模拟场景。单例模式、单例模式示例和分析示例1:身份证号、单例模式、单例模式示例和分析示例1:身份证号参考代码(第09章单例示例01)、演示、单例模式、单例模式示例和分析示例2:操作系统中的打印池,后台打印程序是一个用于管理打印作业的应用程序。用户可以通过打印假脱机删除、暂停或更改打印作业的优先级。系统中只允许运行一个打印假脱机对象。如果重复创建打印假脱机,将引发异常。单例模式用于模拟打印池的设计。单
5、例模式、单例模式示例和分析示例2:打印池、单例模式、单例模式示例和分析示例2:打印池参考代码(第09章单例示例02)、演示、单例模式、模式的优缺点单例模式提供对唯一实例的受控访问。因为singleton类封装了它唯一的实例,所以它可以严格控制客户如何以及何时访问它,并且为设计和开发团队提供了一个共享的概念。因为系统内存中只有一个对象,所以可以节省系统资源。对于一些需要频繁创建和销毁的对象,单例模式无疑可以提高系统性能。允许可变数量的实例。我们可以基于单一模式进行扩展,并使用类似于单实例控件的方法来获取指定数量的对象实例。由于单一模式中没有抽象层,所以很难扩展单一类。单一案件类的责任太重,在一定
6、程度上违背了“单一责任”原则。因为单例类不仅充当工厂并提供工厂方法,还充当产品,包括一些业务方法,将产品的创建与产品本身的功能集成在一起。单例的滥用会带来一些负面问题,比如为了节省资源,将数据库连接池对象设计成单例类,这可能会导致过多的程序共享连接池对象,导致连接池溢出;如今,许多面向对象的语言(如Java和C#)提供了自动垃圾收集技术。因此,如果实例化的对象长时间不被使用,系统会将其视为垃圾,自动销毁和回收资源,并在下次使用时重新实例化,这将导致对象状态的丢失。单例模式可以在以下情况下使用:系统只需要一个实例对象,例如,系统需要一个唯一的序列号生成器,或者需要考虑资源消耗太高,只允许创建一个
7、对象。客户呼叫类的单个实例只允许一个公共访问点,除了该公共访问点,不能通过其他方式访问该实例。当系统中只需要一个类的实例时,应该使用单例模式。相反,如果一个类的几个实例可以共存,就有必要改进单例模式,使之成为多实例模式。运行时类,公共类运行时私有静态运行时当前运行时=new runtime();公共静态运行时getRuntime()返回当前时间;私有运行时().单例模式,模式应用程序(2)具有自动编号的主键的表可以由多个用户同时使用,但是数据库中只有一个地方可以分配下一个主键号,否则将会有重复的主键,因此主键号生成器必须是唯一的,并且可以通过单例模式实现。单例模式,模式应用程序(3)默认情况下
8、,Spring将通过单例模式创建bean实例:单例模式,模式扩展饥饿单例类,单例模式,模式扩展懒惰单例类,单例模式,模式扩展饥饿单例类与懒惰单例类相比。饥饿的单例类在加载时会实例化自己。从资源利用效率的角度来看,这比懒惰的单一案例类稍差。就速度和反应时间而言,它比懒惰的单一情况稍好。当实例化一个惰性的单例类时,我们必须处理当多个线程第一次同时引用这个类时的访问限制。特别是,当单例类是资源控制器时,不可避免地会涉及资源初始化,这可能会花费大量的时间,这意味着第一次多线程和引用这个类的概率变得更高,并且需要通过同步机制来控制。在本章的总结中,单例模式确保某个类只有一个实例,并实例化它自己,并将这个
9、实例提供给整个系统。这个类叫做单例类,它提供了全局访问的方法。单例模式有三个要点:首先,一个类只能有一个实例;其次,它必须自己创建这个实例;第三,它必须自己向整个系统提供这个例子。单一模式是一种对象创建模式。单例模式只包含一个单例角色:在单例类的内部实现中只生成一个实例,它提供了一个静态工厂方法,这样客户就可以使用它唯一的实例;为了防止它被外部实例化,它的构造函数被设计为私有的。本章总结了单例模式的目的是确保一个类只有一个实例,并提供一个全局访问点来访问它。singleton类有一个私有构造函数,以确保用户不能通过新的关键字直接实例化它。此外,该模式包含一个静态私有成员变量和一个静态公共工厂方法。工厂方法负责检查实例的存在并实例化自身,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (新教材)2026人教版三年级下册数学 3.1 多边形 教学课件
- 2026年劳务合同和聘用合同(1篇)
- 2025 网络基础中教育网络的网络教育公平性网络保障案例课件
- 刑法案例分析中犯罪构成要件分析
- 2025 高中信息技术数据与计算之算法的关键路径算法课件
- 高危药品管理策略
- 人力资源开发与管理真题试卷及答案
- 2025 高中信息技术数据与计算之数据在电商用户复购率提升策略中的应用课件
- 2025 高中信息技术数据与计算之数据可视化的流图设计课件
- 2026年北斗三号基准站网观测环境评估与选址规范
- GB/T 25123.2-2018电力牵引轨道机车车辆和公路车辆用旋转电机第2部分:电子变流器供电的交流电动机
- 水电消防安装知识
- 后补埋件计算~~
- 统编版二年级下册读书吧必读书《绿野仙踪》导读、阅读检测【含答案】
- 湖北中医药大学-医学-护理105400专业考研复习题库大全-上(500题)
- 种子类中药课件
- (完整word)a3标准规范试卷模板
- 说明书hid500系列变频调速器使用说明书s1.1(1)
- 软体家具、沙发质量检验及工艺
- 建设项目工程造价管理办法
- 测量管理体系标准宣贯ppt课件
评论
0/150
提交评论