0
隨着Scala中的泛型廣大的支持,什麼是實現以下的循環參數範圍,其中C
在Command[A, C]
本身就是一亞型的最佳方式(即UserCommand
或SystemCommand
)?引用亞型性狀內斯卡拉
注意:我忽略了C
的較低/較高類型邊界 - 正如問題所暗示的,我不確定如何以編譯的方式表示此內容,或者如果我在Scala中缺少專門用於解決問題的功能這類循環問題。
trait CommandPrerequisite[-A, +C] {
val command: C
def isValid(aggregate: A): Boolean
}
trait Command[A, C] {
def prerequisites: List[CommandPrerequisite[A, C]]
}
trait SystemCommand extends Command[System, SystemCommand] {
// System specific definitions.
}
trait UserCommand extends Command[User, UserCommand] {
// User specific definitions.
}