如何找到创建Java单例实例的位置?

时间:2011-12-01 12:31:18

标签: java singleton instance

在一个庞大而复杂的程序中,发现它的位置可能并不容易 代码一个Singleton已被实例化。跟踪创建的单例实例以便重用它们的最佳方法是什么?

此致 RR

4 个答案:

答案 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