我嘗試理清如何對類別和子類別建模。如何在Scala中對類別和子類別建模
這是我目前的執行:
sealed trait First
sealed trait A extends First
sealed trait B extends First
case object A extends A
case object B extends B
sealed trait Second[M <: First]
case object A1 extends Second[A]
case object B1 extends Second[B]
case object B2 extends Second[B]
case object B3 extends Second[B]
問題:
- 有一些樣板的
First
部分 - 如何從一個
Second
- 一個
First
如何提供型號安全
爲了讓混凝土,這裏是我想達到的目標:
def first(s: Second[_]) : First = ???
case class AObject(s: Second[A])
case class BObject(s: Second[B])
你碰到什麼問題? –
你打算怎麼處理你的類別?隨着你提供的信息,幾乎不可能說設計是否好... –
問題更新了更多細節 –