黑马程序员技术交流社区
标题: 单例模式 [打印本页]
作者: 伊廷文 时间: 2013-3-28 23:52
标题: 单例模式
单例模式用在什么情况下啊
作者: 曹玉龙 时间: 2013-3-29 00:07
本帖最后由 曹玉龙 于 2013-3-29 00:10 编辑
单例设计模式用来保证对象在内存中的唯一性,如果你希望某个类只产生一个对象的话,就可以这样做了.
两种方式源代码示例
class Single
{
privateSingle(){}
/*
//饿汉式,开发中常用
privatefinal static Single s = new Single();
publicstatic Single getInstance()
{
returns;
}
*/
//懒汉式,在多线程中可能出现安全问题,同时懒汉式也具有延迟加载的特性.
privatestatic Single s = null;
publicstatic Single getInstance()
{
if(s == null)
{
s= new Single();
}
returns;
}
}
class SingleTest
{
publicstatic void main(String[] args)
{
Singles = Single.getInstance();
Singlea = Single.getInstance();
//比较两个对象在内存中的唯一性
System.out.println(s);
System.out.println(a);
}
}
作者: _王涛 时间: 2013-3-29 00:11
单例模式:解决一个类在内存中只存在一个对象。为了节省内存空间时使用。
作者: 黑马19我最牛 时间: 2013-3-29 00:16
单例设计模式主要是当你只需要建立一个对象,也只能有一个对象的时候,用到!
作者: 蔡陶军 时间: 2013-3-29 00:31
哥们 其实这样的问题论坛里面许多了,你提问的时候先收索一下
比如:
http://bbs.itheima.com/forum.php ... B%E6%A8%A1%E5%BC%8F
作者: HM李超 时间: 2013-3-29 01:02
看需求:建立一个类共其它类调用,但是其他类只能同时调用一个实例,不可多次创建多个实例。
单例设计模式保证对象唯一性要做到:
1,为了避免其他程序过多的建立对象,先禁止其他程序建立该类对象
2,还为了保证其他程序可以访问到该类的对象,只好在本类中,自定义一个对象
3,为了方便其他程序对自定义的对象的访问,可以对外提供一种访问方式
单例设计模式体现:
1,将构造函数私有化。2,在类中建立一个本类的对象。3,提供一个方法可以获取到该对象。
懒汉式:- class Single
- {
- private static Single s = null;
- private Single(){}
- public static Single getInstance()
- {
- if(s==null)
- {
- synchronized(Single.class)
- {
- if(s==null)
- s = new Single();
- }
- }
- return s;
- }
- }
复制代码 饿汉式:- class Single
- {
- private static final Single s = new Single();
- private Single(){}
- public static Single getInstance()
- {
- return s;
- }
- }
复制代码 开发中饿汉式常用,面试中懒汉式常用,因为关乎到一个线程安全的问题。
作者: HM马明宇 时间: 2013-3-29 01:30
很明显的例子给你说几个:
音乐播放器,说白了,如果用java语言来写一个播放器,这也是一个播放器对象,只不过这个对象的长相是我们能比较喜欢看到的而已。你能同时打开两个Windows Media Player播放器吗?
常用应用程序很多都是只能打开一个的,360,计算器,画图,这些都是应用程序,只不过是图形化了而已,等你的知识到了一定程度就会明白的。
希望能让你的境界提升那么一点,程序员也是有顿悟的。
作者: HM朱蛟 时间: 2013-3-29 05:13
本帖最后由 HM朱蛟 于 2013-3-29 05:17 编辑
学习了学习了
作者: VOIDMAIN 时间: 2013-3-29 22:08
银行业务调度系统里有个经典的单例用法。
单例在程序里就是把对象通过一个私有方法给封装起来,只能通过该方法提供的get方法来获得对象。
作者: 郭孟涛 时间: 2013-3-29 22:25
再复习一下这个这个知识点,设计模式估计要在整体开发项目有几遍经验的时候再发现需要。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |