单例模式的三种常用实现

如题:看代码,太简单,不解释,练手。

/*
 * 静态内部类实现单例模式
 * */
public class AbstractClassImplementsSingleTon {
private AbstractClassImplementsSingleTon(){}

    private static class InnerClass {
        private static AbstractClassImplementsSingleTon instance = new AbstractClassImplementsSingleTon();
    }

    public static  AbstractClassImplementsSingleTon getInstance(){
        return InnerClass.instance;
    }

}
/*
 * 饿汉式加载
 * */
class NotLazyLoad {
    private static NotLazyLoad instance = new NotLazyLoad();
    private NotLazyLoad(){}
    public static NotLazyLoad getInstance(){
        return instance;
    }
}

/*
 * 加锁实现
 * */
class SynchronizedMethodImplementsSingleTon{
    private SynchronizedMethodImplementsSingleTon(){}
    private static SynchronizedMethodImplementsSingleTon instance = null;
    public static SynchronizedMethodImplementsSingleTon getInstance(){
        if(instance==null){
            synchronized(instance){
                if(instance==null){
                    instance = new SynchronizedMethodImplementsSingleTon();
                }
            }
        }
        return instance;
    }

}

猜你喜欢

转载自blog.csdn.net/iphone4grf/article/details/53760993