Auf Thema antworten

Naja, aber selbst dann hast du immernoch die Möglichkeit, Lese- und Schreibzugriffe nachträglich zu prüfen oder zu manipulieren. Wenn es mal sein muß. Das hat man nicht mehr, wenn man Felder gleich öffentlich macht.

Es mag relativ selten vorkommen, Feldzugriffe nachträglich zu bearbeiten, aber ich sehe nicht warum ich mir diese Mögilchkeit ohne Not verbauen sollte (weswegen ich ein Freund von "alles grundsätzlich private und nur Zugriffe ausschließlich über Methoden" bin).


In meinem jCLS-Projekt gab es mal eine Klasse, die einfach nur als Variablenbündel dienen sollte. Ich wollte einfach nur einen Datentyp, der einen String, eine Enumeration und noch irgendwas anderes enthält, haben. Und package private war die Klasse auch - also dachte ich, ich weiche mal von meinem strikten Vorgehen ab und habe ich das genauso hingeschlampt: einfach nur eine Klasse mit drei packageprivaten Feldern, ohne Zugriffsmethoden.


Und als es dann komplizierter wurde, hab ich es natürlich bald bereut. Das war zwar nicht die einzige Stelle, an die ich später Hand anlegen mußte, aber dieses Vorgehen hat mir trotzdem ganz erheblich viel Arbeit gemacht. Hätte ich mich mal an meinen sonstigen Plan gehalten...wenn man alles sauber macht und nur einmal schlampt kann man gewiss sein: Im Nachgang hätte man überall schlampen können, nur an dieser einen Stelle nicht.



Oben