【发布时间】:2013-10-05 19:05:07
【问题描述】:
关于不可变状态的优点的文章很多,但是在 Scala 中是否有常见的情况下更喜欢可变类是有意义的? (这是一个 Scala 新手问题,来自具有使用可变类的“经典”OOP 设计背景的人。)
对于像 3 维 Point 类这样微不足道的东西,我得到了不变性的优势。但是像 Motor 类这样的东西呢,它公开了各种控制变量和/或传感器读数?一个经验丰富的 Scala 开发人员通常会编写这样一个不可变的类吗?在这种情况下,“速度”是否会在内部表示为“val”而不是“var”,并且“setSpeed”方法会返回该类的新实例?同样,描述电机内部状态的传感器的每个新读数都会导致实例化一个新的电机实例吗?
在 Java 或 C# 中使用类封装可变状态进行 OOP 的“旧方式”似乎非常适合 Motor 示例。所以我很想知道,一旦您获得了使用不可变状态范式的经验,您是否甚至会将像 Motor 这样的类设计为不可变的。
【问题讨论】:
-
这是一个相关的问题:stackoverflow.com/questions/13803843/…
标签: scala immutability