据我所知单例设计模式意味着我们只能创建一个类的单对象。
以下代码成功运行,没有任何错误/异常。
我期望代码失败,因为SingletonExample
类具有私有的默认构造函数。
public class SingletonExample {
private static SingletonExample singletonInstance;
private SingletonExample() {
}
public static SingletonExample getSingletonInstance() {
if (null == singletonInstance) {
System.out.println("Creating new instance");
singletonInstance = new SingletonExample();
}
return singletonInstance;
}
public void printSingleton(){
System.out.println("Inside print Singleton");
}
public static void main(String a[]) {
SingletonExample singObj1 = new SingletonExample();
SingletonExample singObj2 = new SingletonExample();
}
}
我的代码有问题吗?
最佳答案
因为您的main
方法在SingletonExample
类中,所以main
代码可以访问私有构造函数。
尝试将main
方法移动到另一个类。