【问题标题】:Is storing object instances in file in Java a good idea?在 Java 中将对象实例存储在文件中是个好主意吗?
【发布时间】:2018-07-30 21:58:49
【问题描述】:

我有一个项目,我想在整个项目中创建一个类的最小实例(在 Java 中)。序列化和反序列化对象并将其存储在文件中是个好主意吗?我将在整个项目中大量使用该课程,所以我不确定这是否是一个好的解决方案。 有没有其他方法可以实现这一目标?

附: - 我有这个类作为单例类

【问题讨论】:

  • 嗯...如果您可以创建多个实例,那么它不是单例。
  • 一个“单例”类不是跨请求的单例。
  • 你在重新定义单例是什么?
  • 您可以使用 bean 并将其注入到您需要此实例的地方。
  • 如果它是一个单例,那么当你在整个地方反序列化它时,你就是在颠覆它的单例。不清楚您要在这里完成什么。

标签: java object serialization


【解决方案1】:

不,这不是一个好主意,原因应该是不言自明的。 如果您想详细了解为什么不应该使用您建议的方法,请查看 @Joachim Sauer 的回答 here

在不知道您打算如何处理要重用的类的情况下,听起来您需要静态实例之类的东西。

因此,不要让自己对单例设计模式感到困惑,只需在(最好)您的主类中创建该类的实例,如下所示:

public static ClassIWantToStore reusable = new ClassIWantToStore();

或者,如果您每次都想要一个不同的类实例:

//THIS IS NOT SINGLETON
public static ClassIWantToStore getNewInstance(){
  //Modify functionality if you want something more 
  //before returning the class instance.
  return new ClassIWantToStore();
}

我建议您阅读 Java 中 static 关键字的作用,这可能对您现在所处的情况很有用;但也应该小心使用,因为它可以帮助你在误用时射中自己的腿。 This 是对 static 关键字的良好而简单的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2018-09-10
    相关资源
    最近更新 更多