黑马程序员技术交流社区

标题: 求助 [打印本页]

作者: zhaogang    时间: 2014-3-14 14:03
标题: 求助
大家好,我想咨询下,java中的单例设计模式,我看了视频但是一直没太明白这个是干嘛用的,我知道分2种有懒汉式和饿汉式,但是什么时候需要用到单例设计模式呢,哪个更常用一些呢,很费解,希望各位大神赐教!!

作者: dfasgfe    时间: 2014-3-14 14:07
单例模式也是一种比较常见的设计模式,它到底能带给我们什么好处呢?
其实无非是三个方面的作用:
第一、控制资源的使用,通过线程同步来控制资源的并发访问;
第二、控制实例产生的数量,达到节约资源的目的。
第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。
比如,数据库连接池的设计一般采用单例模式,数据库连接是一种数据库资源
作者: chen20134    时间: 2014-3-14 15:33
单例设计模式:解决一个类在内存只存在一个对象。
想要保证对象唯一。
1,为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象
2,还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。
3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
当需要将该事物的对象保证在内存中唯一时,就要使用单例模式了

饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的
推荐使用第一种
作者: 松毛    时间: 2014-3-14 16:18
你去看一下张孝祥老师的高新技术视频的银行业务调度系统,那里面有一个NumberMachine,这个NumberMachine就是通过单例模式设计出来的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2