目录
在运行一些程序的时候最害怕的就是任务快结束的时候程序崩溃了或者电脑死机了,程序还得从头开始跑,这太让人崩溃了。为了解决这种问题,我们可以通过序列化操作将程序的状态持久化到本地,这样一来如果程序突然崩溃了,我们可以通过本地的状态文件将程序恢复到崩溃之前的状态,这样程序就不用从头开始跑了。很多网盘的断点续传功能,大概就是这个原理。
这里通过一个例子来说明一下如何通过序列化实现QT程序状态的本地持久化。程序涉及到的类图如下所示:
Serializeble是需要序列化的类必须实现的接口,接口中定义了序列化工具必须使用的方法。
Serializer是各种格式的序列化工具类必须要实现的接口,接口中定义了序列化工具类必须要使用到的方法。
JsonSerializer是Json格式的序列化工具类,可以将程序的状态数据以Json格式进行保存
XmlSerializer是XML格式的序列化工具类,可以将程序的状态数据以XML格式进行保存
BinarySerializer是二进制格式的序列化工具类,可以将程序状态数据以二进制文件的形式进行保存。
这三种格式的文件都有自己的优势和应