全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
java单态设计模式之前一直专注于java的学习,但是对于设计模式一直未曾理解,先将今天学习的设计模式中常见的单态设计模式与大家分享一下。1) 单态设计模式原理即是类在内存中只能创建一个实例对象,就是采取一定的方法保证在整个的软件系统中,对某个类只能产生一个对象实例,并且该类只提供一个取得其实例对象的方法.如果我们要让类在一个虚拟机中只能产生一个对象.我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象.因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法一返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以指向类内部产生的该类对象的变量也必须定义成静态的.2) 单态设计模式的特点1、单态类确保自己有却只有一个实例。2、单态类必须自己创建自己的实例。3、单态类必须为其他对象提供唯一的实例。3) 何时用到单态设计模式第一、控制资源的使用,通过线程同步来控制资源的并发访问;第二、控制实例产生的数量,达到节约资源的目的。第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。比 如,数据库连接池的设计一般采用单例模式,数据库连接是一种数据库资源。软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损 耗,这种效率上的损耗还是非常昂贵的。当然,使用数据库连接池还有很多其它的好处,可以屏蔽不同数据数据库之间的差异,实现系统对数据库的低度耦合,也可 以被多个系统同时使用,具有高可复用性,还能方便对数据库连接的管理等等。数据库连接池属于重量级资源,一个应用中只需要保留一份即可,既节省了资源又方 便管理。所以数据库连接池采用单例模式进行设计会是一个非常好的选择。在我们日常使用的在Windows中也有不少单例模式设计的组件,象常用的文件管理器。由于Windows操作系统是一个典型的多进程多线程系统,那么在创建或者删除某个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象。采用单例模式设计的文件管理器就可以完美的解决这个问题,所有的文件操作都必须通过唯一的实例进行,这样就不会产生混乱的现象。再比如,每台计算机可以有若干个打印机,如果每一个进程或者线程都独立地使用打印机资源的话,那么我们打印出来的结果就有可能既包含这个打印任务的一部分,又包含另外一个打印任务的一部分。所以,大多数的操作系统最终为打印任务设计了一个单例模式的假脱机服务Printer Spooler,所有的打印任务都需要通过假脱机服务进行。实际上,配置信息类、管理类、控制类、门面类、代理类通常被设计为单例类。像Java的Struts、Spring框架,.Net的Spring.Net框架,以及Php的Zend框架都大量使用了单例模式。4) 单态设计模式的实现实现1:()public class Single private Single()/首先有一个私有的构造函数 private static Single instance; /创建一个自己的对象, public static Singleton getInstance() if(instance=null) instance=new Singleton (); return instance; /提供一个方法给外部使用但是,这种方式是线程不安全的,如果多个线程同时访问的话就可能有多个对象产生,如果在get方法中加同步块的话会影响性能。实现2:public class Singleton private Singleton()private static Singleton instance =new Singleton();public static Singleton getInstance()return instance;这种方式虽然不存在安全性问题,但是在程序启动的时候就会初始化。实现3:public class Singleton private static class SingletonHolder static Singleton instance = new Singleton();public static S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南娄底市农业农村局下属事业单位招聘1人参考模拟试题及答案解析
- 2026湖北宜昌高新区所属事业单位“招才兴业”人才引进招聘6人·武汉大学站备考考点题库及答案解析
- 2025湖南省中南锑钨工业贸易有限公司招聘备考考点试题及答案解析
- 2026云南玉溪市通海县卫生健康系统招聘紧缺岗位医生18人参考考点题库及答案解析
- 2025辽宁“职”等你来 共筑未来-抚顺新钢铁校园招聘39人备考考点题库及答案解析
- 2025山东临沂市郯城县消防救援大队政府专职消防员补录备考题库完整答案详解
- 2026中信银行西安分行校园招聘备考题库含答案详解(黄金题型)
- 健康教育服务体验优化策略
- 2025河北衡水滨湖新区志臻中学招聘学科教师参考笔试试题及答案解析
- 2026中国建设银行河南省分行校园招聘970人备考题库含答案详解(b卷)
- 招商引资合作协议书
- 赵州桥介绍教学课件
- 乡土地理云南课件
- 高铁列车自主导航-洞察与解读
- 《JB 5317.3-1991 环链电动葫芦用锥形转子电动机》(2026年)实施指南
- 《跨境电子商务数据分析》课件-项目1 跨境电子商务数据分析基础
- 咯血患者重症监护室(ICU)镇静镇痛方案
- 2026中国人民银行所属企业网联清算公司社会招聘笔试考试参考题库附答案解析
- 国家储备林及乡村振兴项目方案投标文件(技术方案)
- 2025北部湾港集团秋季校园招聘笔试历年备考题库附带答案详解试卷2套
- 肌内效贴扎技术及临床应用
评论
0/150
提交评论