此LocalizationService类应位于具有Onion Architecture的DDD中

时间:2014-09-18 15:43:03

标签: domain-driven-design onion-architecture

我正在尝试用洋葱架构学习DDD,但我遇到了一个问题 我的应用程序应支持标签,枚举,验证消息和某些实体中的某些数据(例如Item.ItemName)的本地化 因此,很明显,本地化过程与域和ui相关 此本地化服务还应支持缓存 现在我很困惑我应该把这个课放在哪里

1 个答案:

答案 0 :(得分:0)

我还没有使用DDD方法进行本地化,但我会尽力帮助您。

本地化是演示数据的问题,我不认为您的域模型应该关注它,如果它的唯一目的是演示。 那怎么处理呢?

我就是这样做的。

让我们说客户正在创造新产品。当然,他必须为它定义一个名称。 您希望将每个产品名称翻译成不同的语言。您可以选择如何做到这一点:

  • 每个产品的管理面板
  • 客户必须在创建新产品时提供
  • 字典
  • 所有这些的混合

等。它并不重要。

因此,在您的createNewProduct视图中,您应该致电产品服务,该服务将创建新产品,并且还会调用某些服务来创建该产品的翻译,但不要将翻译保存在域实体中。换句话说,您应该分开处理业务逻辑和创建翻译的服务。然后在演示时通过productId链接它们。