单例模式

第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton{
    //private 只供内部调用
    private static Singleton instance = new Singleton();
    //提供了一个供外部访问本class的静态方法,可以直接访问  
    public static Singleton getinstance(){
        return instance;
    }    
}

第二种形式:

public class Singleton{
    //private 只供内部调用
    private static Singleton instance = null;

    public static synchronized Singleton getInstance(){
        //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率!
        if (instance==null){
            instance = new Singleton();
        }
        return instance; 
    }    
}

其他形式: 定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些。

posted @ 2016-07-15 12:27  Janenan  Views(101)  Comments(0)    收藏  举报