我可以在main()中创建2个或更多对象吗?

时间:2019-05-16 05:15:00

标签: java

我按照说明设置单例模式类(例如Singleton)并创建一个演示类(例如SingletonDemo),在演示类中,我尝试通过以下代码在main()中创建2个Singleton实例:

Singleton instance1 = Singleton.getInstance();
Singleton instance2 = Singleton.getInstance();

我认为创建instance2时会弹出错误,但是成功创建instance2,为什么?我认为应该为单一模式创建单个实例

2 个答案:

答案 0 :(得分:1)

单例的想法是一次只能有一个该类的实例。它总是返回相同的对象。不可能有两个相同单例的对象,至少要修改类的字段,但这可能会破坏某些东西,而且即使它是JDK的一部分,也是不可能的。

答案 1 :(得分:1)

Singleton的全部要点是,对getInstance()的第一次调用创建并返回(单个)实例,而对getInstance()的所有以后的调用(后接)都返回 同一个实例

此行为允许需要引用单例的任何模块检索它,而不必担心它是否需要创建它。根据定义,对getInstance()的第二次调用不应引发错误。