把类设计成单子模式后,如果把对象保存成文件后再恢复,与原对象就是两个对象了,是否是这样?

解决方案 »

  1.   

    单子模式是什么意思?如果你通过对象流将一个Object写入文件,然后再读出来,那么是完全不同的两个对象
    如果该类继承自Object后没有修改过hashCode和equal方法,那么hashCode也不同,而且equal也返回false
      

  2.   

    是这样的,反序列化是语言机制外的构造函数,如果单例类实现了Serializable后,这个单例类就无法保证单例了,不过有解决方案。可以这样修改你的单例类
    public   class   Singleton   implements   Serializable   {   
              private   static   final   Singleton   INSTANCE   =   new   Singleton();   
              private   Singleton()   {}   
              public   static   Singleton   getInstance()   {return   INSTANCE;}   
              public   Object   readObject()   throws   Exception   {return INSTANCE;}   
      }