单例设计模式
package design.zhc.com.designpattern.singleton;
/**
* Created by ZHC on 2016/5/3.
*/
public class Singleton {
private static Singleton singleton;
private Singleton() {
}
/**
* 懒汉模式
* 优点:单例只有在使用的时候才实例化,一定程度上节约资源
* 缺点:最大问题是每次调用getInstance方法都需要同步
*
* @return Singleton
*/
public static synchronized Singleton getInstance() {
if (singleton == null) {
singleton = new Singleton();
}
return singleton;
}
/**
* Double Check Lock(DCL)实现单例
* 第一次判空为了避免不必要的同步
*
* @return Singleton
*/
public static Singleton getInstance2() {
// 第一次判空为了避免不必要的同步
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
/**
* 静态内部类单例模式
*
* 最佳方案
*/
public static Singleton getInstance3() {
return SingletonHolder.sInstance;
}
private static class SingletonHolder {
private static final Singleton sInstance = new Singleton();
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。