为什么s1=s2?
怎么创建的是同一个一个对象?
怎么创建的是同一个一个对象?
2018-03-08
您需要理解以下两段代码的区别:
//代码1 Singleton s1 = new Singleton(); Singleton s2 = new Singleton(); //代码2 Singleton s1 = Singleton.instance; Singleton s2 = Singleton.instance;
在代码1中,在没有实现“单例模式”的情况下,是实实在在的分别创建了两个对象s1和s2。所有这里的s1和s2肯定是不同的。
而已经实现了“单例模式”之后,唯一的对象instance在Singleton类中已经创建。在代码2中,没有创建任何新的对象,s1和s2都只是引用了Singleton中的instance而已。所有这里的s1和s2肯定是相同的。
希望我的回答能给你帮助。如果您还有任何疑惑,可以私信我。
望采纳,谢谢您。
举报