我有3个班,A,B和C.
在任何给定时间只有1个A类实例退出,但是将存在数百个B类和C类对象。
A类调用B类方法。 B类调用C类方法。 C类最终会调用A类对象的方法。
在C中提供对A类对象的引用的最佳和最干净的方法是什么?
任何C对象都会在其生命周期中多次调用A的方法。
答案 0 :(得分:0)
我建议在A类中创建一个静态getInstance()方法,该方法返回对象本身。
答案 1 :(得分:0)
选项2.让Singleton类私有地使用私有构造函数包含实例,并使用get实例返回实例。这是常用的模式。
选项1使构造函数对其他不需要的方法开放,因为它只应调用一次(如果我正确地读取选项)。选项3会使代码混乱。
答案 2 :(得分:0)
最方便的方式当然是#2。最干净的"可能是#1或#3,视情况而定。
Singleton(#2)模式存在一些问题。这并不意味着你应该不惜一切代价避免它。但你应该意识到其含义。
有关该主题的一些信息,请参阅What is so bad about singletons?