2014-09-18 49 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