2011-09-29 25 views
1

我有一個實體,它具有一個id和一個標題。 id始終是相同的,但給定語言環境的標題值更改。我發現,模型化這三道:如何使用本地化(i18n)屬性正確地建模對象

class Entity 
    String getId() 
    String getTitle(Locale) 

class Entity 
    String getId() 
    LocalizedEntity getLocalizedEntity(Locale) 

class LocalizedEntity 
    String getTitle() 

class Entity 
    String getId() 

class LocalizedEntity extends Entity 
    Locale getLocale() 
    String getTitle() 

我傾向於選擇第一個,因爲它不會破壞您模型化的實體的方式,它只是你的對象的一種觀點。第二是對我來說最糟糕的情況。

哪一個更好?有另一種方法嗎?

回答

0

在我看來,數據本地化不應該影響您的對象設計,所以我會選擇第一個選項。

我們建立了一個本地化引擎在我的日常工作,在幾年前,這是其中具有三個屬性(ISO 639-1 α-2語言代碼,ISO 15924 α-4腳本代碼和ISO 3166 α-2地域代碼指定了Locale對象,我們使用的模型,一起組成IETF language tag,如en-Latn-GB,zh-Hans-CN,sr-Cyrl-RS等)。

我希望有幫助,儘管我猜你可能在去年提出你的決定,因爲你的問題的日期。

+0

謝謝,它有助於我的自我,因爲儘管我有所有的論點,我的老闆選擇了第二種選擇。他的主要觀點是提供一個沒有任何重複數據的模型。所以我想在這裏面對我的觀點,以便知道我是否正確。一年半之後,我可以說這是該項目和企業最糟糕的選擇: -/ – amertum

+0

呃,如果我至少幫助了你的自我,那比幫助別人更好:o) –