获取国家代码或内部 ID 可能需要访问数据库或仅加载属性文件。
但是,如何将这种方法放置在应用程序中?作为一种实用方法,它看起来不合适,那么它是否适合应用程序服务?
获取国家代码或内部 ID 可能需要访问数据库或仅加载属性文件。
但是,如何将这种方法放置在应用程序中?作为一种实用方法,它看起来不合适,那么它是否适合应用程序服务?
在 DDD 中,这种类型的方法将放置在存储库中,这基本上是数据访问层的抽象。对于国家代码之类的内容,您可以考虑缓存数据,因为它是静态的。
根据我的经验,国家/地区没有内部 ID。(您的域可能不同。)因此,如果它不存在于您的域中,并且您正在进行域驱动设计,那么您将希望避免使用国家 ID 等人为概念。
假设您Address
在数据库中有一个表。而不是存储CountryId
,而是存储CountryAbbreviation
。这是一把天然的钥匙。
现在,您如何确保您的地址只有有效的 country_id?如果您控制所有客户端(例如),那么您可以执行以下操作:
<select>
<option value="US">United States</option
<option value="UK">United Kingdom</option
</select>
上面,可以看到value
属性是国家的缩写。
除非报告是基于国家/地区的缩写,否则您实际上不需要确保它们超级一致(除非它对您的域非常重要)。