您的位置:首页 > 其它

设计模式读书笔记之单例模式(Singleton)

2010-03-28 21:50 393 查看
单例模式:保证一个类只有一个实例,并提供一个全局的访问途经。

package designpattern.singleton;
public class Singleton {
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
instance = new Singleton();
}
return instance;
}
}


特点:

1 该类自己负责保存它自己唯一的实例;

2 该类的构造方法为私有,以保证外部无法调用构造方法来实例化它;

但是如果有多个线程同时访问getInstance,则还是有可能创造出多个实例。改进一下:

package designpattern.singleton;
public class Singleton {
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
synchronized(Singleton.class){
if(instance==null){
instance = new Singleton();
}
}
}
return instance;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息