推荐的代码样式:case对象Foo或对象Foo扩展了Serializable?

问题描述

| 如果我想要一个序列化安全的单例,我应该选择
case object Foo
要么
object Foo extends Serializable
?     

解决方法

我认为这取决于您打算如何使用该对象。案例对象通常与案例类一起使用,以代数数据类型(例如
Nil
None
)表示某种初始或最终对象。常规对象通常是类的伴侣,用于容纳诸如单例和工厂方法之类的静态方法。 如果您打算将此对象与其他类一起使用,对其进行序列化,或者可能在模式匹配中使用它,则将其定义为案例对象对我来说似乎更自然。