banq老师你好,关于你的单态模式

07-08-06 xmuzyu
         

public class Singleton {

  private Singleton(){}

  //在自己内部定义自己一个实例,是不是很奇怪?

  //注意这是private 只供内部调用

  private static Singleton instance = new Singleton();

  //这里提供了一个供外部访问本class的静态方法,可以直接访问  

  public static Singleton getInstance() {

    return instance;   

   }

}

public class Singleton {

  private static Singleton instance = null;

  public static synchronized Singleton getInstance() {

  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     

  //使用时生成实例!

  if (instance==null)

    instance=new Singleton();

  return instance;   }

}

banq老师你说:“//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次。”

也就是说第一种方法每次都要生成新对象吗?好像第一个方法也不用每次生成新对象。只要类加载到内存中,以后每次都还是返回同一个对象。

         

banq
2007-08-06 18:37

是的,这里语义有些误解。更正,谢谢

xmuzyu
2007-08-06 19:35

呵呵。。banq老师客气了。。