单例模式

作者: 水山一村 | 来源:发表于2017-02-15 11:02 被阅读26次
    单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到。也就是说,在整个程序空间中,该类只存在一个实例对象。
    优点:保证了只有一个实例,减少内存占用。同时也避免对同一资源进行多种操作。
    单例一般有两种创建方法
    (1)懒汉式
    /**
    *特点:需要的时候才创建
    **/
    public class Singleton {  
        private static Singleton instance = null;  
        private Singleton() {  
        }    
        public static Singleton getInstance() {  
            if (instance == null) {  
                instance = new Singleton();  
              }  
            return instance;  
        }  
    }
    
    (2)恶汉式
    /**
    * 特点:类一加载就创建了
    **/
    public class SingleInstance {
     private final static SingleInstance instance = new SingleInstance();
     public static SingleInstance getInstance() {
         return instance;
     }
    }
    
    以上就是单例模式的两种模式。其中懒汉式通常会存在多线程安全问题。可以通过加线程同步锁来解决这个问题。
    优化写法:
    publci static synchronized Singleton getInstance(){
        if(instance == null){
            synchronized(Object){
                if(instance == null){
                    instance = new Singleton();
                }
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:单例模式

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