1. 问题描述
单例类是指一个最多只能创建一个实例(对象)的类。
根据上述要求,有以下解决方案:
- 该类的对象只能在类中初始化,即将类的构造器用
private
修饰; - 需要提供一个
public
方法供外部访问,且该方法为类方法,即用static
修饰;
2. 具体实现
class Singleton {
private static Singleton instance;
private Singleton() {} // 构造函数初始化
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
public class SingletonTest {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2); // 输出true则表明两者为同一个对象
}
}