如果我想要一个序列化安全的单例,我应该选择哪种实现方法?
case object Foo
或者
object Foo extends Serializable
?
case object Foo
或者
object Foo extends Serializable
?
我认为这取决于你计划如何使用这个对象。Case对象通常与Case类一起使用,表示代数数据类型中的某种初始或终端对象,例如Nil
或None
。常规对象通常是类的伴生对象,用于保存静态方法,如单例和工厂方法。
如果您计划将此对象与其他类一起使用,对其进行序列化,并可能在模式匹配中使用它,则将其定义为Case对象似乎更自然。