public class MySingleton { private static MySingleton instance = null; private MySingleton() { // Private constructor to prevent instantiation outside of this class. } public static MySingleton getInstance() { if (instance == null) { instance = new MySingleton(); } return instance; }},构造函数有private不能实例化,为什么get方法有new MySingleton?
时间: 2023-06-15 22:05:20 浏览: 282
mysingleton
虽然构造函数被声明为私有,但是静态方法 `getInstance()` 可以在该类的内部调用该私有构造函数,因此可以创建该类的唯一实例。因为该类的唯一实例是通过静态方法创建的,所以它可以被所有其他的代码访问。在第一次调用 `getInstance()` 时,由于 `instance` 是空的,所以会创建一个新的 `MySingleton` 对象。在随后的调用中,将返回之前创建的实例。这就是单例模式的核心思想:确保一个类只有一个实例,并提供一个全局访问点。
阅读全文