是否值得控制代表值对象的案例类的可见性?如果是这样,案例类上的可见性修饰符是否足够,或者使用显式伴随对象和私有构造函数会更好?
版本 1:
case class MyClass private/protected/private[] {}
版本 2:
case class MyClass private
object MyClass {
def apply = {
new MyClass
}
}
总而言之,这个问题可以概括为如何在 scala 中处理值对象。我个人想强制执行 no new,所以我想在创建对象时更改某些内容,我可以随时进行。也就是说,只需在必要时添加一个伴随对象。