单例模式
(1)简单单例模式
package com.alan.singleton;
public class SimpleSingleton {
private static SimpleSingleton simpleSingleton = new SimpleSingleton() ;
public static SimpleSingleton getInstance(){
return simpleSingleton ;
}
}
(2)具有延迟加载功能的单例模式
package com.alan.singleton;
public class LazySingleton {
private static LazySingleton lazySingleton = null ;
public static LazySingleton getInstance(){
if(lazySingleton ==null){
lazySingleton = new LazySingleton() ;
}
return lazySingleton ;
}
}
(3)多线程下的单例模式
package com.alan.singleton;
public class MultiThreadSingleton {
private static MultiThreadSingleton multiThreadSingleton ;
public static MultiThreadSingleton getInstance(){
if(multiThreadSingleton ==null){
synchronized(multiThreadSingleton){
multiThreadSingleton = new MultiThreadSingleton() ;
}
}
return multiThreadSingleton ;
}
}