在保持松散耦合的同时保持物体

时间:2012-08-02 18:32:34

标签: c persistence loose-coupling cohesion

我在微控制器上开展项目,我需要坚持一些设置。假装这是一个iPod。我需要保存各种设置,例如CurrentSongPlayingCurrentVolume等,这样当我再次打开时,我可以恢复这些设置。我遇到的麻烦是将我的所有非易失性设置存储在一个我可以从内存中序列化/反序列化的结构中,但我无法找到一种方法来实现这一点来自非易失性存储器的序列化/反序列化,包括每个包含需要为大小/类型信息保存的设置的类。是否有某种设计模式可以让我将所有这些设置保存到内存中,而不必了解我正在保存的内容?

2 个答案:

答案 0 :(得分:1)

看起来你只需要一个associative array。关联数组(或映射)是一个容器,允许您将不同的值映射到唯一键。它可以具有固定或动态大小,具体取决于实现。与适当的序列化机制相结合,它允许您保存和恢复其状态,而无需事先知道其内容。

但是,C不提供开箱即用的数据结构。 Look at this question for a few implementations.最常见的实现是hash table,也称为哈希映射。

答案 1 :(得分:0)

在C中不容易实现OOP和类。

如果必须使用C,我会将结构写入文件。

然后我会读取它们并在重启时初始化时解析它们。

您可以将此视为自行序列化结构。