获取国家/地区代码或内部ID可能需要访问数据库或只是加载属性文件。
如何将这种方法放在应用程序中?作为一种实用方法,它看起来不合适,所以它适合应用服务吗?
答案 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
属性是国家/地区缩写。
除非报告基于国家/地区缩写,否则您不需要确保它们超级一致(除非它对您的域名非常重要)。