In Scala sehe ich eine Funktion als objektprivate Variable. Aufgrund meines nicht sehr umfangreichen Java-Hintergrunds habe ich gelernt, alles zu schließen (privat zu machen) und bei Bedarf zu öffnen (Accessoren bereitzustellen). Scala führt einen noch strengeren Zugriffsmodifikator ein. Sollte ich es immer standardmäßig verwenden? Oder sollte ich es nur in bestimmten Fällen verwenden, in denen ich das Ändern des Feldwerts auch für Objekte derselben Klasse explizit einschränken muss? Mit anderen Worten, wie soll ich wählen
class Dummy {
private var name = "default name"
}
class Dummy {
private[this] var name = "default name"
}
Das zweite ist strenger und ich mag es, aber sollte ich es immer verwenden oder nur, wenn ich einen starken Grund habe?
BEARBEITET: Wie ich hier sehe ,private[this]
ist nur ein Teilfall und stattdessen this
kann ich andere Modifikatoren verwenden: "Paket, Klasse oder Singleton-Objekt". Also lasse ich es für einen besonderen Fall.