推荐的代码风格:case object Foo 或 object Foo extends Serialized?

发布于 2024-11-09 08:48:25 字数 149 浏览 5 评论 0原文

如果我想要一个序列化安全的单例,我应该选择

case object Foo

还是

object Foo extends Serializable

If I want a serialization-safe singleton, should I prefer

case object Foo

or

object Foo extends Serializable

?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬シ愛 2024-11-16 08:48:25

我认为这取决于您打算如何使用这个对象。 Case 对象通常与 case 类一起使用来表示代数数据类型中的某种初始或终止对象,例如 NilNone。常规对象通常是类的伴侣,用于保存单例和工厂方法等静态方法。

如果您计划将此对象与其他类一起使用,对其进行序列化,并且可能在模式匹配中使用它,那么将其定义为案例对象对我来说似乎更自然。

I think this depends on how you plan to use this object. Case objects are generally used with case classes to represent some kind of initial or terminal object in an algebraic data type, eg Nil or None. Regular objects usually are companions for classes to hold static methods like singleton and factory methods.

If you're planning using this object with other classes, serializing it, and maybe using it in pattern matching, defining it as a case object seems more natural to me.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文