Ale*_*sev 2 c# oop dns domain-driven-design class-design
如果我的域对象应该包含2种语言的字符串属性,我应该创建2个单独的属性还是创建一个新类型BiLingualString?
例如,在工厂分类应用程序中,工厂域对象可以包含Plant.LatName和Plant.EngName.
整个域的双语属性数量不多,大约6-8,我只需要支持两种语言,信息应该同时以两种语言呈现给UI .(所以这不是locallization).在开发过程中,要求不会改变.
它可能看起来像一个简单的问题,但这个决定将对验证,持久性,对象克隆和许多其他事情产生影响.
负面我可以想到使用新的dualString类型:
在阅读你的问题时,我一直在思考,why not localization但当我读到时,information should be presented to UI in both languages at the same time.我认为使用属性是有意义的.
在这种情况下,我会为你提到的每种语言都有一个字符串 BiLingualString
public class Names
{
public string EngName {get;set;}
public string LatName {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
然后我会在我的主要植物类中使用这个类
public class Plant: Names
{
}
Run Code Online (Sandbox Code Playgroud)