【发布时间】:2020-10-08 13:20:34
【问题描述】:
我有 2 个 Mongo 集合对应于以下数据类:ArcadeSessions、ArcadeMarioSessions
data class PlayingSession(
val sessionId: Int
val sessionDescription: String
val game: Game // Mario, GTA, ...
)
data class MarioPlayingSession(
val numberOfJumps : Int
val totalMarioScore: Int
val level: MarioLevel
) : PlayingSession(...)
data class ArcadeSessions(
val id: Int, // player ID
val sessionHistory: List<PlayingSession>?
)
data class ArcadeMarioSessions(
val id: Int, // player ID
val sessionHistory: List<MarioPlayingSession>?
)
如您所见,ArcadeMarioSessions 基本上包含每个玩家的 ArcadeSessions 子集(我们先不谈“为什么”)。
这样写感觉像是反人类罪(就像完全不同的课程) 但由于某种原因,我无法让数据类与继承很好地发挥作用。
这样写的正确方法是什么?
【问题讨论】:
-
@deHaar 看到这篇文章,我看到的只是数据类和继承不能很好地结合在一起,问题是什么,比如这里的正确解决方案是什么?
-
该问题包含几个可以作为替代的答案,例如
abstract classes。我知道这在某种程度上违反了data classes 的便利性。也许你可以使用它...
标签: mongodb kotlin data-class