美文网首页
单例模式

单例模式

作者: Minstrel_a7ca | 来源:发表于2018-07-21 13:57 被阅读0次

    What

    保证一个类只有一个实例,并提供它的全局唯一访问点。

    保证一个Class只有一个实体对象存在。
    具体可以有很多种,只有保证全局唯一就可以

    初始化就创建

    public class Singleton {
        private Singleton() {
        }
    
        private static Singleton instance = new Singleton();
    
        public static Singleton getInstance()
        {
            return instance;
        }
    
    }
    

    lazy load

    当用的时候再创建。

    public class SingletionLazy {
        private SingletionLazy() {}
        private static SingletionLazy instance = null;
        public static synchronized SingletionLazy getInstance()
        {
            if(instance == null)
                instance = new SingletionLazy();
            return instance;
        }
    }
    

    double check
    两次检查null

    public class Singleton{
        private static Singleton singleton;
        private Singleton (){}
        public static Singleton getSingleton() {
            if (singleton == null) {
                synchronized (Singleton.class) {
                    if (singleton == null) {
                        singleton = new Singleton();
                    }
                }
            }
            return singleton;
        }
    }
    

    相关文章

      网友评论

          本文标题:单例模式

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