我用Qt C ++编写,我想创建一些对象( ISaveFile 类型),该对象将在一段时间后将数据保存到文件中。另外,我希望我的数据按结构化顺序保存。例如
// After some user changes
file->beginGroup("Cool settings");
file->setValue("setpoint_1", value_1);
file->setValue("setpoint_2", value_2);
file->beginGroup("Nested setpoint_3");
file->setValue("par_1", value_1);
file->setValue("par_2", value_2);
file->endGroup(); // Nested setpoint_3
file->endGroup(); // Cool settings
(其中方法 setValue 接收 QVariant 作为值类型)
然后,文件对象将在一段时间后自动保存。
问题是:如何组织在文件内存储数据以减少所有嵌套地图的复杂性。
最快的解决方案之一-如果我想创建 ISaveFile 的后代JsonSaveFile,文件对象的所有者可以填充 QJsonObject ,然后将其传递到文件的地图,也没有问题。但这没有oop,如果将来我想写 XmlSaveFile 或其他的话该怎么办。