最近我接受了一次采访,他问我有关Singleton Design Patterns如何实现的问题,我告诉他,使用静态变量和静态方法,我们可以实现Singleton Design Patterns。
他似乎对答案感到满意,但我想知道
实现单例设计模式
在Java中?
有关Singleton的任何投入都会受到高度赞赏,在处理Singleton时要记住的主要事项是什么?
谢谢。
最佳答案
有几种方法可以在Java中实现Singleton模式:
// private constructor, public static instance
// usage: Blah.INSTANCE.someMethod();
public class Blah {
public static final Blah INSTANCE = new Blah();
private Blah() {
}
// public methods
}
// private constructor, public instance method
// usage: Woo.getInstance().someMethod();
public class Woo {
private static final Woo INSTANCE = new Woo();
private Woo() {
}
public static Woo getInstance() {
return INSTANCE;
}
// public methods
}
// Java5+ single element enumeration (preferred approach)
// usage: Zing.INSTANCE.someMethod();
public enum Zing {
INSTANCE;
// public methods
}
给定以上示例,每个类加载器将只有一个实例。
关于在集群中使用单例...我不确定“使用”的定义是什么...面试官是否暗示在整个集群中创建了一个实例?我不确定这是否有意义...?
最后,只需通过属性singleton =“false”即可在spring中定义一个非单一对象。
关于java - Java Singleton设计模式: Questions,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3428615/