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