加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么不将每个Scala类都作为案例类?

发布时间:2020-12-16 18:53:28 所属栏目:安全 来源:网络整理
导读:case类有一些很好的perc,比如 copy,hashCode,toString,Pattern Matching.为什么不把每个Scala类都作为一个case类呢? 解决方法 案例类非常适合保存复杂值,例如实体对象.它们被认为恰恰适用于这种情况,因此它们通过合成您提到的方法并进一步使您的类Serializa
case类有一些很好的perc,比如 copy,hashCode,toString,Pattern Matching.为什么不把每个Scala类都作为一个case类呢?

解决方法

案例类非常适合保存复杂值,例如实体对象.它们被认为恰恰适用于这种情况,因此它们通过合成您提到的方法并进一步使您的类Serializable并使用“工厂”方法创建伴随对象(除了提取器之外)为您提供精确适用于此用例的方法.模式匹配).

缺点如下:

> case类所具有的一些属性可能对你正在创建的类没有意义:你想在持有数据库连接的对象上使用equals方法吗?将它作为Serializable是否有意义?如果确实如此,它会安全吗?
>所有这些功能都不是免费的:它们需要编译器做一些额外的工作并添加到你的最终工件大小;如果您不需要案例类提供的额外功能,为什么要使用这些?
>您不能从案例类继承到另一个案例类,这可能与您对域的建模方式不符.为什么?简答:平等.你可以找到更长的答案here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读