怎么让一个类生成惟一的实例?
在讲构造方法的时候提到过,我们在创建一个实例的时候构造方法一定会被调用的,不管这个类有几个构造方法,其中的一个构造方法一定会被调用。
因为构造方法一定会被调用,所以我们考虑从构造方法来入手。
假如说我们提供私有的构造方法,私有的构造方法,只有类自己可以访问。
public class SingletonTest {
public void static main(String[] args){
Singleton s = new Singleton();/*这里编译会报错,因为在SingletonTest类里面访问不到Singleton的私有构造方法。*/
}
}
class Singleton {
private Singleton(){
}
}
public void static main(String[] args){
Singleton s = new Singleton();/*这里编译会报错,因为在SingletonTest类里面访问不到Singleton的私有构造方法。*/
}
}
class Singleton {
private Singleton(){
}
}
所以采用下面的形式来获得单例:
public class SingletonTest {
public void static main(String[] args){
Singleton s = Singleton.getInstance();
}
}
class Singleton {
private static Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}
public void static main(String[] args){
Singleton s = Singleton.getInstance();
}
}
class Singleton {
private static Singleton instance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return instance;
}
}