Java 单例中的静态方法
假设我有一个Java类,如下所示:Java 单例中的静态方法,java,singleton,Java,Singleton,假设我有一个Java类,如下所示: public class ClassicSingleton { private static ClassicSingleton instance = null; protected ClassicSingleton() { // Exists only to defeat instantiation. } public static ClassicSingleton getInstance() { if(inst
public class ClassicSingleton {
private static ClassicSingleton instance = null;
protected ClassicSingleton() {
// Exists only to defeat instantiation.
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
public void initialize(String id, Double num, String data){
....
}
}
如果我将在另一个类中访问ClassicSingleton的“实例”,那么ClassicSingleton的理想方法类型是什么
初始化应该是一个静态函数,这样我就可以在其他类中调用它:
ClassicSingleton mySingleton = ClassicSingleton.getInstance();
mySingleton = ClassicSingleton.initialize("id",0.0,"data");
或者我应该保持初始化状态并调用:
ClassicSingleton mySingleton = ClassicSingleton.getInstance();
mySingleton.initialize("id",0.0,"data");
初始化
应为静态方法。单例的概念是它是该对象的唯一实例。如果一个对象被初始化两次,或者通过该对象的一个实例被初始化,那么它会稍微违背单例模式的目的
就我个人而言,我喜欢在构造函数中调用
initialize
,它本身只被调用一次,以防止任何混淆。initialize
应该是一个静态方法。单例的概念是它是该对象的唯一实例。如果一个对象被初始化两次,或者通过该对象的一个实例被初始化,那么它会稍微违背单例模式的目的
就我个人而言,我喜欢在构造函数中调用
initialize
,它本身只调用一次,以防止任何混淆。如果您正在访问实例,则使用第二个选项
ClassicSingleton mySingleton = ClassicSingleton.getInstance();
mySingleton.initialize("id", 0.0, "data");
如果要访问实例,请使用第二个选项
ClassicSingleton mySingleton = ClassicSingleton.getInstance();
mySingleton.initialize("id", 0.0, "data");
如果您正在创建Singleton类的实例,那么您应该选择第二个如果您正在创建Singleton类的实例,那么您应该选择第二个