我有一个小型应用程序,它允许用户创建帐户,然后互相奖励“积分”。UserAccount 是一个对象,Point 也是一个对象,它们之间存在聚合关系:每个 UserAccount 都有一个成员变量(PointHistory),它是一个 Points 的集合。
Point 对象仅包含 UserAccount 对象发送/接收 Point 的属性。
当我简单地序列化类以保留我的对象模型时,这很好。但是,我现在正在实现一个数据库来持久化对象数据,并且在任何给定时间只会将一个/一些对象加载到内存中。为了加载对象,我有一个构造函数方法,它从数据库中的一行创建一个新的 UserAccount,还有一个类似的构造函数从数据库行创建一个 Point。这就是麻烦开始的地方——当第二个构造函数必须引用第一个构造函数尚未构造的内容时,一个对象的构造函数如何调用另一个对象的构造函数?为了完成构造,对象必须已经构造。
简单的解决方案是简单地用从数据库查询中提取的字符串集合替换 Point 对象集合 (PointHistory)。这足以满足我的目的。但是,我想知道是否有另一种不放弃 Point 对象/对象模型的方法,以及这种聚合/持久性问题是否常见?