您的位置:首页 > 编程语言 > Java开发

head first 设计模式——(单件模式)

2016-09-24 16:39 211 查看
//未处理

public class Singleton {
private static Singleton singleton;
private Singleton(){}

public static Singleton getInstance(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
//其他方法
}
//多线程

public class Singleton_1 {
private static Singleton_1 singleton;
private Singleton_1(){}
//synchronized迫使每个线程在进入这个方法之前,要先等候别的线程离开该方法。
//也就是说,不会有两个线程可以同时进入这个方法。
//但这样耗费不较大。
public static synchronized Singleton_1 getInstance(){
if(singleton == null){
singleton = new Singleton_1();
}
return singleton;
}
//其他方法
}
//急切创建实例;

public class Singleton_2 {
private static Singleton_2 singleton = new Singleton_2() ;
private Singleton_2(){}

public static  Singleton_2 getInstance(){
return singleton;
}
//其他方法
}
// 双重检查加锁;
/**
* 此方式仅适用于 jdk 1.4以后的版本
* @author dxq
*
*/
public class Singleton_3 {

private volatile static Singleton_3 singleton;

private Singleton_3(){}

public static  Singleton_3 getInstance(){
if(singleton == null){
synchronized (Singleton_3.class){
if(singleton == null){
singleton = new Singleton_3();
}
}
}
return singleton;
}
//其他方法
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 java csdn