【发布时间】:2017-10-25 16:29:07
【问题描述】:
我想学习 Scala 语言。
在许多文档或视频教程中,我看到 scala 开发人员创建空类或对象并将其用于另一个类作为参数或实现空特征!
例如:
object Controller {
sealed trait Controller
case object Login extends Controller
case object Logout extends Controller
}
或者这个:
sealed trait Expression
case class Number(num: Int) extends Expression
case class Plus(a: Expression, b: Expression) extends Expression
case class Minus(a: Expression, b: Expression) extends Expression
object ExpressionEvaluate {
def value(expression: Expression): Int = expression match {
case Number(value) => value
case Plus(a, b) => value(a) + value(b)
case Minus(a, b) => value(a) - value(b)
}
}
我想知道这个模式是什么?
空类、对象或特征是什么意思?
为什么开发人员使用这种模式?
【问题讨论】:
标签: scala