黑马程序员技术交流社区

标题: 请教一个技术问题:关于单例设计模式 [打印本页]

作者: hsl5430    时间: 2015-4-1 20:31
标题: 请教一个技术问题:关于单例设计模式
单例设计模式中懒汉式和恶汉式的区别和用法,总是搞混了,求高人指点。。。
作者: 山里孩子    时间: 2015-4-1 23:03
饿汉式  就是总是先创建对象  
public class Person()(
private Person(){}
private static Person p = new Person();
public static Person getPerson(){
return p;
}
)
懒汉式 就是在调用的时候才创建对象  
class Person(){
private Person(){}
public static Person getPerson(){
return p = new Person();
}
}
作者: 花独恋水    时间: 2015-4-1 23:20
两种方式在平时的使用中区别不大,一定要说两者的区别的话,
饿汉式属于预加载,即jvm在启动的时候就已经将该实例创建;
懒汉式属于需要的时候,调用该类的方法才第一次也是唯一一次创建这个实例;
2楼的写法其实不规范,因为懒汉式涉及到多个线程都可能调用提供单例的方法,所以需要加锁来保持同步的效果。
class Person(){
private Person(){}
public syncronized static Person getPerson(){
return p = new Person();
}
}
作者: 马士基    时间: 2015-4-2 11:44
三步走战略




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