【发布时间】:2018-07-29 02:06:53
【问题描述】:
这可能是一个愚蠢的问题,但我对 Scala 比较陌生,所以请多多包涵。我正在尝试为 Scala 中的 Spark 作业建模域对象,它反映了源记录的数据结构并包含 100 多个字段。我正在尝试找出最好的建模方法,因为我不喜欢简单地将所有字段添加到单个案例类中。我曾考虑将密切相关的字段分组到嵌套案例类中,但后来我在一些地方读到不建议使用嵌套案例类。我会很感激一些关于什么是最好的方法的意见。
编辑:回应 Alvaro 的 cmets:
所以本质上我们是说不推荐这样做:
case class Product(name: String,
desc: String,
productGroup: String) {
case class ProductPack(packType: String,
packQuantity: Int,
packQuantityUnit: String,
packUnitPrice: Float)
}
虽然这样很好:
case class Product(name: String,
desc: String,
productGroup: String,
productPack: ProductPack) {
}
case class ProductPack(packType: String,
packQuantity: Int,
packQuantityUnit: String,
packUnitPrice: Float) {
}
【问题讨论】:
-
您从哪里了解到不推荐使用嵌套案例类?
-
这是我读到的地方之一here
-
该指南不鼓励在其他案例类(嵌套类)中使用案例类的定义。但是拥有一个案例类的属性 reference 其他案例类(在类之外定义)很好。
-
如果您提供一些实际代码,也许是一个具有多个属性的类,我们可能会提供更多相关帮助。
-
如果您需要在单个案例类中添加超过 22 个字段,请阅读:underscore.io/blog/posts/2016/10/11/twenty-two.html
标签: scala apache-spark dao dto