package com.abin.info.service;
public class Singleton {
private static Singleton singleton=new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return singleton;
}
}
2、懶漢模式:
package com.abin.inter.she;
public class Singleton {
private static Singleton singleton=null;
private Singleton(){
}
public static Singleton getInstance(){
if(null==singleton){
return new Singleton();
}
return singleton;
}
}
懶漢模式的線程安全版本:
3、雙重檢測:
package com.east.abin.impl;
public class Singleton {
private static Singleton instance=null;
private Singleton(){
}
public static Singleton getInstance(){
if(null==instance){
synchronized(Singleton.class){
if(null==instance){
instance=new Singleton();
return instance;
}
}
}
return instance;
}
}
4.靜態(tài)內(nèi)部類:
package com.east.abin.bin;
public class Singleton {
private Singleton(){
}
private static class SingletonHelp{
private static Singleton instance=new Singleton();
}
public static Singleton getInstance(){
return SingletonHelp.instance;
}
}
5、enum類型的(這個是針對jdk 1.5以及1.5版本以上的)
package com.abin.peng.service;
public enum Singleton {
Singleton;
private Singleton(){}
public static Singleton getInstance(){
return Singleton;
}
}