En Scala veo una característica como variable privada de objeto. De mi experiencia en Java no muy rica, aprendí a cerrar todo (hacerlo privado) y abrir (proporcionar accesos) si es necesario. Scala introduce un modificador de acceso aún más estricto. ¿Debería usarlo siempre por defecto? ¿O debería usarlo solo en algunos casos específicos donde necesito restringir explícitamente el cambio de valor de campo incluso para objetos de la misma clase? En otras palabras, ¿cómo debo elegir entre
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
El segundo es más estricto y me gusta, pero ¿debo usarlo siempre o solo si tengo una razón de peso?
EDITADO: Como veo aquí private[this]
es solo un subcase y en lugar de this
puedo usar otros modificadores: "paquete, clase u objeto singleton". Así que lo dejo para algún caso especial.