美文网首页
设计模式——单例模式

设计模式——单例模式

作者: 蜗牛的赛跑 | 来源:发表于2016-08-24 23:05 被阅读0次

    单例模式应该是应用最广的模式,也是最容易理解的模式了.
    在许多时候,我们整个系统值需要拥有一个全局对象,这样有利我们的管理和使用.比如网络的访问请求,线程池等.
    而写法多种多样,最最简单的写法

    public class Singleton {  
        //私有化构造方法
        private Singleton() {}  
        private static Singleton single=null;  
        //静态工厂方法   
        public static Singleton getInstance() {  
             if (single == null) {    
                 single = new Singleton();  
             }    
            return single;  
        }  
    }  
    

    但是这样写显然不是线程安全的
    关于线程安全的写法很多
    这里我举例使用静态内部类的单例模式

    public class Singleton {    
        private Singleton() {}    
        �private static class Holder {    
            private static final Singleton instance = new Singleton();    
        }    
        public static Singleton getInstance() {     
            return Holder.instance;    
        }    
    }    
    

    第一次加载Singleton类不会初始化instance,只有在调用getInstance()的时候才会导致instance被初始化.而且通过静态内部类可以保证单例且线程安全

    相关文章

      网友评论

          本文标题:设计模式——单例模式

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