0

获取国家代码或内部 ID 可能需要访问数据库或仅加载属性文件。

但是,如何将这种方法放置在应用程序中?作为一种实用方法,它看起来不合适,那么它是否适合应用程序服务?

4

2 回答 2

1

在 DDD 中,这种类型的方法将放置在存储库中,这基本上是数据访问层的抽象。对于国家代码之类的内容,您可以考虑缓存数据,因为它是静态的。

于 2011-08-05T20:11:31.913 回答
1

根据我的经验,国家/地区没有内部 ID。(您的域可能不同。)因此,如果它不存在于您的域中,并且您正在进行域驱动设计,那么您将希望避免使用国家 ID 等人为概念。

假设您Address在数据库中有一个表。而不是存储CountryId,而是存储CountryAbbreviation。这是一把天然的钥匙。

现在,您如何确保您的地址只有有效的 country_id?如果您控制所有客户端(例如),那么您可以执行以下操作:

<select>
  <option value="US">United States</option
  <option value="UK">United Kingdom</option
</select>

上面,可以看到value属性是国家的缩写。

除非报告是基于国家/地区的缩写,否则您实际上不需要确保它们超级一致(除非它对您的域非常重要)。

于 2011-08-05T20:11:48.607 回答