单身人士的静态方法

时间:2016-02-25 03:58:37

标签: java singleton

假设我有一个像Java这样的类:

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 mySingleton = ClassicSingleton.getInstance();
mySingleton = ClassicSingleton.initialize("id",0.0,"data");

或者我应该保持初始化并致电:

ClassicSingleton mySingleton = ClassicSingleton.getInstance();
mySingleton.initialize("id",0.0,"data");

3 个答案:

答案 0 :(得分:0)

flatMap应该是静态方法。 Singleton的想法是它是该对象的唯一实例。如果一个对象初始化两次,或者通过该对象的实例初始化,则稍微违背了Singleton模式的目的。

就个人而言,我喜欢在构造函数中调用initialize,构造函数本身只调用一次,以防止混淆。

答案 1 :(得分:0)

如果您正在访问实例,请使用第二个选项

ClassicSingleton mySingleton = ClassicSingleton.getInstance(); mySingleton.initialize(" ID",0.0,"数据&#34);

答案 2 :(得分:0)

如果您正在创建Singleton类的实例,那么您应该选择第二个