美文网首页
最简单的单例

最简单的单例

作者: 爱我O就直说 | 来源:发表于2020-01-21 14:57 被阅读0次
    不啰嗦,因为太简单,直接上代码
    //枚举式单例模式
    public enum SingleMode {
    
        INSTANCE;
    
    }
    

    使用时:

     //枚举式单例模式
     SingleMode singleMode = SingleMode.INSTANCE;
    

    原来的饿汉:

    public class SingleMode {
    
        private static SingleMode INSTANCE = new SingleMode();
    
        private SingleMode() {}
    
        public static SingleMode getInstance() {
            return INSTANCE;
        }
    
    }
    

    原来的懒汉:

    public class SingleMode {
    
        //private static SingleMode INSTANCE;
        //加上 volatile 关键字,更安全
        private static volatile SingleMode INSTANCE;
    
        private SingleMode() {
        }
    
        public static SingleMode getInstance() {
            if (INSTANCE == null) {
                synchronized (SingleMode.class) {
                    if (INSTANCE == null) 
                        INSTANCE = new SingleMode();
                }
            }
            return INSTANCE;
        }
    
    }
    

    相关文章

      网友评论

          本文标题:最简单的单例

          本文链接:https://www.haomeiwen.com/subject/oojezctx.html