我应该在哪里存储对象列表?

Posted

技术标签:

【中文标题】我应该在哪里存储对象列表?【英文标题】:Where should I store a list of objects? 【发布时间】:2018-04-17 05:52:19 【问题描述】:

我有一个基类和两个派生类。我想在文件中写入和读取这些类的对象。我正在考虑使用虚拟函数来写入/读取数据,但我不知道应该将这些函数放在哪里。在基类中?当我将从文件中读取数据时,我会将指向对象的指针存储在向量中,但我想我不能拥有指向声明该向量的类的对象的指针向量。有人可以帮我解决这个问题吗?提前感谢您的任何建议。

【问题讨论】:

【参考方案1】:

当您将对象写入文件时,您还必须存储一些信息,以便在以后再次读取对象时知道对象的类型/类;否则你将不知道要实例化哪个派生类。

一旦你解决了这个问题,你就可以决定以你想要的方式将对象存储在任何地方。

【讨论】:

【参考方案2】:

据我了解您的问题,您有一个基类和两个派生类。所有这些你都想从一个文件中写入和读取,并且你想一次从这个对象中读取多个实例。

在我看来,你需要一个容器类,它负责阅读和写作。这意味着您实现了一个类,它将您的实例存储在一个向量中,然后可以将它们保存到磁盘并再次读取它们。

保存从同一基类继承的不同类型的类,还需要添加一个类型,在写入和读取过程中必须检查该类型,以正确处理存储的信息。

【讨论】:

以上是关于我应该在哪里存储对象列表?的主要内容,如果未能解决你的问题,请参考以下文章

在哪里存储 objectstore 和 vwsession 对象

如何在浏览器本地存储 Flutter Web 应用程序中保存对象列表

Android:我应该在哪里查找证书吊销列表?

Eclipse RCP:我应该将模型对象保存在哪里以及它们如何与视图对话?

我应该在 web 应用程序的 spring/spring-security 中将用户 ID 密钥存储在哪里?

我应该在哪里进行转换:域对象<-> DTO?