获取国家/地区代码 - 服务或实用程序方法?

时间:2011-08-05 15:27:28

标签: service domain-driven-design utility

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

如何将这种方法放在应用程序中?作为一种实用方法,它看起来不合适,所以它适合应用服务吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

根据我的经验,各国没有内部ID。 (您的域名可能不同。)因此,如果您的域中不存在,并且您正在进行域驱动设计,那么您将需要避免像国家/地区ID那样的人为概念。

假设您在数据库中有一个Address表。而不是存储CountryId,而是存储CountryAbbreviation。这是一个自然的关键。

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

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

在上面,您可以看到value属性是国家/地区缩写。

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