黑马程序员技术交流社区
标题:
单例模式的问题
[打印本页]
作者:
冷叙辰
时间:
2013-3-12 16:51
标题:
单例模式的问题
本帖最后由 冷叙辰 于 2013-3-12 17:57 编辑
单例模式分为饿汉式和懒汉式,我想知道他们有什么分别,以及那种比较好?
作者:
李洪因
时间:
2013-3-12 16:59
饿汉式
对象预先加载,线程是安全的,在类创建好的同时对象生成,调用获得对象实例的方法反应速度快,代码简练。
懒汉式:
对象延迟加载,效率高,只有在使用的时候才实例化对象,但若设计不当线程会不安全,代码相对于饿汉式复杂,第一次加载类对象的时候反应不快。
作者:
HM李帅
时间:
2013-3-12 17:01
区别就是你是在getInstance的方法里还是方法外面实例化对象
比如
饿汉式
class Animal {
private Animal animal = new Animal();
private Animal() {
}
Animal getInstance() {
return animal;
}
}
懒汉式
class Animal {
private Animal animal = null;
private Animal() {
}
Animal getInstance() {
animal = new Animal();
return animal;
}
}
个人感觉懒汉式比较好 ,毕竟是在方法里面实例化的 可以确保对外的是唯一的对象
作者:
沉默de羔羊
时间:
2013-3-12 17:10
饿汉式:在于,当你加载类的时候,管你用还是不用,都会先在内存中创建一个对象,方便以后使用。
懒汉式:在于,当你使用的时候,你去调用话,假如该对象存在于内存,那么就直接调用,否则就创建一个,保存在内存,方便以后使用。(可以理解成延迟加载,用的时候才创建。)
懒汉模式,对于大系统而言是最好的,能节约资源。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2