我有一个具有ID和标题的实体。 id始终相同,但给定区域设置标题值更改。我找到了三种模拟方法:
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 :(得分:0)
在我看来,您的数据本地化不应该影响您的对象设计,所以我会选择您的第一个选项。
我们在几年前的日常工作中构建了一个本地化引擎,这就是我们使用的模型,其中Locale
对象使用三个属性(ISO 639-1 α-2语言代码,{{{ 3}}脚本代码和ISO 15924 α-4区域代码,共同构成ISO 3166 α-2,如en-Latn-GB
,zh-Hans-CN
,sr-Cyrl-RS
等等。
我希望这有帮助,不过我猜你可能在去年做出了你的决定,考虑到你的问题的日期。