W Scali widzę taką funkcję jak zmienna prywatna obiektu. Z mojego niezbyt bogatego zaplecza Java nauczyłem się zamykać wszystko (uczynić to prywatnym) i otwierać (udostępniać akcesory), jeśli to konieczne. Scala wprowadza jeszcze bardziej restrykcyjny modyfikator dostępu. Czy zawsze powinienem go używać domyślnie? A może powinienem go używać tylko w określonych przypadkach, w których muszę jawnie ograniczyć zmianę wartości pola nawet dla obiektów tej samej klasy? Innymi słowy, jak mam wybierać między
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
Drugi jest bardziej rygorystyczny i mi się podoba, ale czy powinienem go używać zawsze, czy tylko z mocnego powodu?
EDYTOWANE: Jak widzę tutaj private[this]
jest tylko przypadek podrzędny i zamiast niego this
mogę użyć innych modyfikatorów: „pakiet, klasa lub obiekt pojedynczy”. Więc zostawię to na jakiś specjalny przypadek.