每天一个设计模式 -- 单例模式

先从最熟悉的单例模式开始!

public class Singleton {
    
    /**
     * 1.某些类的创建过于频繁,频繁创建一些大型对象,是一笔很大的系统开销
     * 2.省去 new 操作符,降低系统内存的使用频率,降低GC的开销
     * 3.有些核心交易,控制着交易流程,如果该类可以创建多个,系统会乱。使用单例模式保证类的唯一,
     *   才能保证核心交易服务器独立控制整个过程
     *
     *
     *      getInstance 牺牲了一部分性能,保证了程序的安全
     *   如果在性能上有需要,可以使用内部类的方式去创建
     */
    
    /*保持静态私有实例,防止被引用。此处赋值null,为了延迟加载*/
    private static Singleton instance = null;
    
    
    /*私有化构造方法,防止类被实例化*/
    private Singleton(){}
    
    /**
     * 初始化方法
     * @return
     */
    private static synchronized Singleton getInstance(){
        if(instance == null){
            return new Singleton();
        }
        
        return instance;
    }
    
    /* 如果该对象被用于序列化,可以保证对象在序列化前后保持一致 */  
    public Object readResolve() {  
        return instance;  
    }
}

posted on 2017-08-03 11:02  零零多  阅读(100)  评论(0)    收藏  举报

导航