2014-09-18 57 views
0

我想学习与洋葱架构的DDD,但我遇到了问题
我的应用程序应支持本地化标签,枚举,验证消息和一些数据在一些实体(例如Item.ItemName)
所以,很明显,在本地化过程涉及域和UI
而这种本地化服务也应支持缓存
现在我我应该在哪里把这个类这里LocalizationService类应该在DDD与洋葱架构

+0

任何帮助?这个问题对我很困惑 – Mahdy 2014-09-21 06:58:37

回答

0

我困惑没有使用DDD方法进行本地化,但我会尽我所能来帮助你。

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

这就是我该怎么做的。

假设客户正在创建新产品。当然,他必须为它定义一个名称。 您希望将每个产品名称翻译成不同的语言。这是你的选择,你会怎么做:

  • 管理面板的每一个产品
  • 客户必须提供它,而创造新的产品
  • 字典
  • 所有这些

的搭配等等,它并不重要。

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

+0

所以,你说我应该从两个地方加载实体数据,一个来自域,它将加载整个实体,除了它的可本地化的属性,另一个地方将在应用程序服务中加载可本地化属性,对吗? – Mahdy 2014-09-25 07:43:06

+0

是的,但可能不在应用程序服务中,而是在基础架构层中。如果您遇到性能问题,那么您应该转向CQRS方法。 – 2014-09-25 08:59:26