<分区>
Possible Duplicate:
Difference between static class and singleton pattern?
我在想,
像 Java 的 Math 类这样所有方法都是静态的类会被认为是单例吗?还是单例必须有一个实例,例如:Math.getInstance().abs(...
) 才有资格成为单例?
谢谢
<分区>
Possible Duplicate:
Difference between static class and singleton pattern?
我在想,
像 Java 的 Math 类这样所有方法都是静态的类会被认为是单例吗?还是单例必须有一个实例,例如:Math.getInstance().abs(...
) 才有资格成为单例?
谢谢
最佳答案
在一个类中只有静态方法并不能使它成为单例
,因为如果您有一个公共(public)构造函数
,您仍然可以创建该类的尽可能多的实例
要使一个类成为Singleton
,它应该有private constructor
,这样它就不能从类外被实例化,并且有一个每次调用时返回
。相同实例
的静态工厂
如果您真的是指 static class
,那么首先,您不能将 top-level
类设置为 static
。你只能有static nested class
,在这种情况下你不需要创建那个类的任何实例,但你可以并且你可以创建多个实例,因此它不是Singleton
.
此外,您提到的类 - java.lang.Math
不是静态类。您应该看到它的文档。
关于java - 静态类是单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13589087/