如何停止创建单例实例
How to stop creating instance of Singleton
我有一个这样的单身人士class:
class Singleton {
static class SingletonHolder {
static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
我可以从其他人那里这样打电话吗class:
Singleton dummy = new Singleton();
如果是,我该如何禁用它?如果不能,那我为什么不能?
当然可以。只需将构造函数设为私有即可避免这种情况:只需添加 private Singleton() {}
即可防止默认构造函数成为 public.
我建议你将其设为 enum
(因为它们无论如何都无法实例化);
enum Singleton {
INSTANCE;
public static Singleton getInstance() {
return INSTANCE;
}
}
我有一个这样的单身人士class:
class Singleton {
static class SingletonHolder {
static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
我可以从其他人那里这样打电话吗class:
Singleton dummy = new Singleton();
如果是,我该如何禁用它?如果不能,那我为什么不能?
当然可以。只需将构造函数设为私有即可避免这种情况:只需添加 private Singleton() {}
即可防止默认构造函数成为 public.
我建议你将其设为 enum
(因为它们无论如何都无法实例化);
enum Singleton {
INSTANCE;
public static Singleton getInstance() {
return INSTANCE;
}
}