单例:来整个程序中的初始化次数有且仅有一次
从上面的定义中知道单例只能被初始化一次,因此单例的构造方法不能被外界访问到,所以我们需要重写单例的构造方法,并用private来修饰.
因为构造方法被标记为私有(private),所以我们需要提供一个方法或属性来构造该类,并且此方法或属性不管调用多少次,单列都只会被初始化一次,因为在调用该或属性初始化单例之前,单列并没有实例化对象,所以该方法只能通过类名来调用,可知此方法需用static类修饰.
单列的实现:
public class Singleton {
private static Singleton singleton;
private Singleton(){}
/*
* 单列构造方法
*/
public static Singleton getSingleton(){
if (singleton != null){
singleton = new Singleton();
}
return singleton;
}
}
单列的使用:
class Test{
public static void main(String[] args) {
Singleton singleton = Singleton.getSingleton();
}
}