[英]Enumeration or Class?
我使用枚举方法实现Singleton:
public enum Singleton {
INSTANCE;
public void doStuff(String stuff) {
System.out.println("Doing " + stuff);
}
}
我该怎么称呼它(我不是指执行,只是如何编写它)? 它仍然是一个类或现在是一个枚举? 我只对理论部分感兴趣。
如果谈论面向对象和类,我可以说我创建了类型枚举的Singleton类吗?
Java中的枚举只是一个类(你似乎知道),所以你应该好好调用它上面的任何一个。 这有点主观,但我认为这取决于你想突出它的哪些方面。
我理解任何这些术语,我不会判断某人使用一个与另一个。
这是一个枚举,它也是一个类。 Enum是一种类。
在这种情况下,您创建了一个单例对象INSTANCE,它是一个枚举(在本例中为INSTANCE)。 jvm确保只存在一个枚举实例; 因此默认情况下它们可以被视为单身。 你可以在这里找到更多细节
这是一个枚举。 java语言确保INSTANCE枚举值将被实例化一次(每个类加载器,通常每个JVM一次),Singleton.INSTANCE字段将允许您访问单个实例。
你也可以这样做:
public class Singleton {
public static Singleton instance INSTANCE = new Singleton();
private Singleton() { /* private ctor so people can't instantiate their own */ }
}
但是enum方法使它更清晰(如果你有JDK5或更高版本)
Java programming language enum types are much more powerful than their
counterparts in other languages. The enum declaration defines a class
(called an enum type).
The enum class body can include methods and other fields. The compiler
automatically adds some special methods when it creates an enum.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.