如何存储值对象集合

How to store a Value Object collection

假设我有一个用户实体。并且这个实体必须有一个 Country 字段。

通常,Country 是一个值对象。

这里还可以,没问题。

但是我得到了一张票,上面说现在在前端,必须从可用国家列表中填写国家(我以后还需要扩展这个列表)

如果 Country 最初是一个实体,这将是一件容易的事,但我将它作为一个值对象。

遇到这种情况怎么办?将 Country 重新定义为一个实体,还是有其他方法?

即使您将国家/地区维护为实体,您也可以将它们作为用户实体的一部分存储为值对象。国家/地区对象的基本性质是它的值就是它的身份,这使其成为值对象的良好候选对象。

但是恕我直言,国家列表可以保存为静态列表,因为该列表是有限的。

我不知道将国家/地区添加到列表对您的应用意味着什么,但我假设它不像 CRUD 操作那样微不足道。如果该列表很少更新,您可以将可用国家/地区列表维护为代码中的静态列表,并在必要时更新。

如果要求经常将一个国家/地区从可用切换到 not-available 和 vice-versa,您可以将它们存储为 CRUD 实体,但将它们用作用户中的值对象。