考虑到我们有一个类似的对象层次结构如下图所示,其中User
有一组Profiles
,每个配置文件都有一组Settings
。
class User {
private final List<Profile> profiles;
}
class Profile {
private final List<String> settings;
}
确保对上述对象的任何更改也会持久保存到磁盘有什么好方法?假设Profile
可能很大,我希望避免将整个User
保留为Profile
中的修改。
请注意,这是一个设计问题,而不是选择正确的对象序列化库的问题。
答案 0 :(得分:0)
确保对上述对象的任何更改也会持久保存到磁盘?
简短的回答,如果你在谈论设计,就是让用户成为聚合根,并让用户保持它拥有的对象层次结构的一致性。
避免让整个用户继续修改个人资料。
在这种情况下,您需要事件采购。 简而言之,您需要存储对配置文件/设置所做的更改。在加载用户时,从事件流(事实)重建配置文件/设置,这是迄今为止所做的更改。