In Scala vedo tale funzionalità come variabile privata dell'oggetto. Dal mio background Java non molto ricco ho imparato a chiudere tutto (renderlo privato) e aprire (fornire accessors) se necessario. Scala introduce un modificatore di accesso ancora più rigoroso. Dovrei usarlo sempre di default? O dovrei usarlo solo in alcuni casi specifici in cui ho bisogno di limitare esplicitamente la modifica del valore del campo anche per oggetti della stessa classe? In altre parole come dovrei scegliere tra
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
Il secondo è più severo e mi piace ma dovrei usarlo sempre o solo se ho un motivo forte?
MODIFICATO: Come vedo qui private[this]
è solo un sottocaso e invece di this
posso usare altri modificatori: "pacchetto, classe o oggetto singleton". Quindi lo lascio per qualche caso speciale.