scala case类将方法放入伴生对象中?

scala case类将方法放入伴生对象中?,scala,case-class,Scala,Case Class,在case类或伴随对象中声明方法是否“更干净”(性能更好) e、 g 最好将方法放在case类中;这难道不是上课的全部意义吗?对象是静态的,对于方法来说通常不是一个好地方,因为这意味着它们需要比其他方法多接受一个参数。我希望类中的方法执行得稍微好一点,因为不需要加载伴随对象实例(更一般地说,它更接近JVM优化的风格),但这几乎肯定是一个太小的差异,在任何实际程序中都无关紧要。当然,没有规则是绝对的;如果您发现某个特定的方法似乎更适合于伴生对象,请务必将其放在那里。我更喜欢将方法放在case类中。

在case类或伴随对象中声明方法是否“更干净”(性能更好)

e、 g


最好将方法放在case类中;这难道不是上课的全部意义吗?
对象
是静态的,对于方法来说通常不是一个好地方,因为这意味着它们需要比其他方法多接受一个参数。我希望类中的方法执行得稍微好一点,因为不需要加载伴随对象实例(更一般地说,它更接近JVM优化的风格),但这几乎肯定是一个太小的差异,在任何实际程序中都无关紧要。当然,没有规则是绝对的;如果您发现某个特定的方法似乎更适合于伴生对象,请务必将其放在那里。

我更喜欢将方法放在case类中。把它放在伴生对象中听起来像贫血领域模型反模式

此外,您可以稍后重写case类方法,或者扩展和混合一些特性

case class My(a:A) {
    def m(args) = {...}
}
or
object My {
    def m(m:My, args) = {...}
}