浏览 3873 次
锁定老帖子 主题:3种单例模式对比
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-26
模式一: class Singleton2 { public static Singleton2 getInstance() { } public class Singleton { } 模式三: public class Singleton { private static class SingletonHolder { public static Singleton getInstance() { } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-04-26
模式三是为了解决多线程下实现延迟初始化的singleton模式
|
|
返回顶楼 | |
发表时间:2007-04-26
2楼正解!
在模式2中,不管我们是不是调用getInstance()都会存在一个实例在内存中,而在模式3中,只有我们调用了getInstance(),才会创建唯一的实例到内存中.并且也解决了模式1中多线程的问题.解决的方式是利用了Classloader的特性. |
|
返回顶楼 | |
发表时间:2007-04-27
《Effective Java》上有滴说~
|
|
返回顶楼 | |
发表时间:2007-04-27
Eastsun 写道 《Effective Java》上有滴说~ 恩,只展现了模式1和2
|
|
返回顶楼 | |
发表时间:2007-04-27
模式3中的lazy initialization方法在《Effective JAVA》的线程一章里面讲到了滴说
|
|
返回顶楼 | |