在一个庞大而复杂的程序中,发现它的位置可能并不容易 代码一个Singleton已被实例化。跟踪创建的单例实例以便重用它们的最佳方法是什么?
此致 RR
答案 0 :(得分:6)
Singleton通常有一个私有构造函数,因此Singleton类是唯一可以实例化唯一的单例实例的类。
答案 1 :(得分:1)
singleton class
开发人员的责任是确保实例在多次调用中被重用。
作为用户,您不必担心。
class Singelton
{
private static Singelton _singelton = null;
private Singelton()
{
}
// NOT usable for Multithreaded program
public static Singelton CreateMe()
{
if(_singelton == null)
_singelton = new Singelton();
return _singelton;
}
}
现在,您可以从代码中的任何位置实例化Singelton
,您喜欢多少次,每次都将其分配给不同的引用。但是c'tor只被召唤一次。
答案 2 :(得分:0)
我会使用enum
enum Singleton {
INSTANCE:
}
或类似的东西,不能多次实例化并且可以全局访问。
答案 3 :(得分:0)
创建/返回单例的命名方法的一般做法是getInstance()
。当你在代码中找不到单例创建的地方时,我不明白这种情况,但是你可以搜索这个方法名。
如果您想要了解单身人士创建的确切时刻 - 您可以使用AOP。 AspectJ是java中的一个很好的例子。您可以在创建类之前/之后执行代码,也可以调用getInstance()
方法。
如果您的问题是重新使用已创建的单身人士,请搜索此网站。 For example