是否有关于何时使用案例类(或案例对象)与在Scala中扩展Enumeration的最佳实践指南?
他们似乎提供了一些相同的好处.
在Java中,我做了很多数据集成工作.一直出现的一件事是在多个系统之间映射数据.所以我经常做这样的事情
public enum DataField{
Field1("xmlField", "dbField", "system1Field";
private String xml;
private String db;
private String sys;
private DataField(String xml, String db, String sys){
this.xml = xml;
this.db = db;
this.sys = sys;
}
public getXml(){
return this.xml;
}
public static DataField valueOfXml(String xml){
for (DataField d : this.values()){
if (d.xml.equals(xml)){ return d;}
}
}
bla, bla bla
}
Run Code Online (Sandbox Code Playgroud)
这允许我做的是将字段名称DataField放在我的所有消息中,并能够映射在多个系统中调用该字段的内容.所以在我的XML中,它可能firstname在我的数据库中被调用,first_name但在我的外部接口系统中,它可能被调用first.这种模式非常好地将所有这些结合在一起,并且以紧凑,类型安全的方式使这些类型的系统中的消息传递变得非常容易.
现在我不记得为什么Scala改变了枚举实现,但我记得当我读它时它是有意义的.但问题是,我将在Scala中使用什么来取代这种设计模式?我讨厌失去它,因为它对我在某一天写的很多系统都非常有用和基础.
谢谢