回答
A Singleton通常有一个私有的构造函数,因此Singleton类是唯一可以实例化唯一的单例实例的类。
e编辑。请阅读 – recoInrelax
@recolnrelax您可以请添加一个片段,显示您实际上做了什么。 (我不明白该部分'分配给该单身人士的变量) – stacker
我没有读它的权利。 “Singleton类是唯一可以实例化唯一的单例实例的类”我现在明白了:p抱歉 – recoInrelax
这是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只被调用一次。
我会用一个enum
enum Singleton {
INSTANCE:
}
或类似的东西不能被实例化不止一次和全局访问更多。
命名创建/返回单身人士的方法的一般做法是getInstance()
。当你无法在创建单例的代码中找到该位置时,我不理解这种情况,但可以搜索此方法名称。
如果你想捕捉创建单身人士的确切时刻 - 你可以使用AOP。 AspectJ是java中的一个很好的例子。您将能够在创建课程之前/之后执行您的代码或调用getInstance()
方法。
如果您的问题是关于重复使用创建的单身人士,然后搜索此网站。 For example
- 1. Java实例位置
- 2. 找到创建实例的用户
- 3. Spring创建单例的多个实例?
- 4. 如何单元测试实例创建?
- 5. Dagger 2创建单例实例
- 6. 如何创建CommonsMultipartFile实例
- 7. 如何创建QWebFrame实例
- 8. 如何创建依赖类的单例实例?
- 9. 如何重置单例实例?
- 10. intellij想法:如何找到所有实例创建的类
- 11. 如何创建可以找到Chrome或Firefox实例的DesiredCapabilities?
- 12. 创建实例
- 13. 创建实例
- 14. 创建实例
- 15. Java中,一个类的多个实例重置最新创建的实例
- 16. 找到实例
- 17. StructureMap重置单例实例
- 18. 如何从超类的实例创建子类的实例?
- 19. Java创建地图对象的实例
- 20. 如何为Windows实例创建实例存储支持的AMI?
- 21. 如果实例值已设置,如何在WEKA中创建实例?
- 22. GSON实例创建者创建的实例,但字段为空
- 23. StructureMap创建实例
- 24. 创建EC2实例
- 25. GLTF创建实例
- 26. 在BackgroundWorker中创建表单的实例
- 27. ExtJS的4创建表单实例
- 28. 如何创建ICLRAppDomainResourceMonitor接口的实例?
- 29. 如何创建实例的镜像?
- 30. 如何创建Google BaseClientService.Initializer的实例
你想知道哪个调用实例化单例(假设懒惰实例化)?如果是这样,您可以修改单例以在调用构造函数时存储/记录堆栈跟踪。 –