JAVA单例模式详解

第一种:很好用的一种:采用静态内部类来实现

 

/**
 * 单例模式--One*/
public class Singleton_One {
    
    /**  
     * 私有化构造方法  
     */  
    private Singleton_One(){
        
    }
    
    public static final Singleton_One getInstance(){
        return SingletonHandler.singleton;
    }
    
     /**  
     * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例  
     * 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载  
     */  
    private static class SingletonHandler {
        /**  
         * 静态初始化器,由JVM来保证线程安全  
         */  
        private static final Singleton_One singleton = new Singleton_One(); 
    }
}

 

第二种:采用枚举来实现,JDK1.5以后才支持的

/**
 * 枚举单例*/
public enum Singleton_Two {

    instance;
    
    private Singleton_Two(){
        
    }
    
    public SingletoObject SingletonHandler(){
        return new SingletoObject();
    }
    
}

/**
 * 被单例控制对象*/
class SingletoObject{
    
}

/**
 * 获取单例的方法*/
class SingletonTest{
    private SingletoObject st = Singleton_Two.instance.SingletonHandler();
}

 

这两种比较好,其他的都会有各种问题;就不记录了。

这种方便自己看的,应该写在随笔记里面吗?

 

posted @ 2016-12-27 16:39  剧终的格调  阅读(49)  评论(0)    收藏  举报