没有合适的资源?快使用搜索试试~ 我知道了~
Java中的单例模式应用及详解
5星 · 超过95%的资源 需积分: 13 19 下载量 103 浏览量
2011-05-04
07:51:49
上传
评论
收藏 139KB DOC 举报
温馨提示
试读
6页
在Java中有很多模式,例如MVC啊等等,这些模式都很重要,所以我做出了一些归纳
资源推荐
资源详情
资源评论
Singleton pattern( 单例模式 )
文章分类:Java
编程
一、定义
单例模式(Singleton pattern):确保一个类只有一个实例,并提供一个全局
的访问点。
这个定义包含两层意思:
第一:我们把某个类设计成自己管理的一个单独实例,同时也要避免其他类再
自行产生实例。要想取得单个实例,通过单例类是唯一的途径。
第二:我们必需提供对这个实例的全局访问点:当你需要实例时,向类查询,
它会给你返回单个实例。
注意:单例模式确保一个类只有一个实例,是指在特定系统范围内只能有一个
实例。有时在某些情况下,使用 Singleton 并不能达到 Singleton 的目的,如
有多个 Singleton 对象同时被不同的类装入器装载;在 EJB 这样的分布式系统
中使用也要注意这种情况,因为 EJB 是跨服务器,跨 JVM 的。
1。某个框架容器内:如 Spring IOC 容器,可以通过配置保证实例在容器内的
唯一性。
2。再如单一 JVM 中、单一类加载器加载类的情况可以保证实例的唯一性。
如果在两个类加载器或 JVM 中,可能他们有机会各自创建自己的单个实例,因
为每个类加载器都定义了一个命名空间,如果有两个以上的类加载器,不同的
类加载器可能会加载同一个类,从整个程序来看,同一个类会被加载多次。如
果这样的事情发生在单例上,就会产后多个 Singleton 并存的怪异现象。所以
如果你的程序有多个类加载,同时你又使用了单例模式,请一定要小心。有一个
解决加法是,自行给单例类指定类加载器(指定同一个类加载器)。
二、用处
有一些对象其实我们完全只需要一个即可,如:线程池(threadpool)、缓存
(cache)、注册表(registry)的对象、设备的驱动程序的对象等等。事实上,
这些类的对象只能有一个实例,如果制造出多个实例,就会导致许多问题的产
生,例如:程序的行为异常、资源的过量使用、产生不一致的结果等等。Java
Singleton 模式就为我们提供了这样实现的可能。使用 Singleton 的好处还在
于可以节省内存,因为它限制了实例的个数,有利于 Java 垃圾回收
(garbage collection)。我们常常看到工厂模式中类装入器(class loader)
中也用 Singleton 模式实现的,因为被装入的类实际也属于资源。
资源评论
- 不错4毛哥哥2012-10-26把单例模式各个方面讲的很详细
- 田哥coder2013-09-30还行吧,感觉是从别的地方复制的,
- icyice19892013-10-14虽然看起来是东拼西凑的,但是单例模式各个方面讲的很详细
中原一秋风
- 粉丝: 3
- 资源: 42
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功