public attribute?
-
Hi
Nach etwas c++ programmieren, wenn man etwas ueber Datenkaselung hoert, dann klingt das irgendwie so, als braeuchte man gar keine public attribute, denn eigenltich sollte man ja alles mit private: mit set und get funktionen machen, oder???
Also fuer was sollte man dann noch public attribute nehmen?
Gruss
-
sollte man besser nicht. Man kann zwar, aber wie du schon sagst, sind get- und set-methoden besser. Insofern: membervariablen immer private und nur die zugehören get/setter public.
-
Hallo,
get- und set-Methoden sollten aber auch nur spärlich verwendet werden, keinesfalls als Default nach dem Motto: für jedes Element eine get- und eine set-Methode.
Objekte sollten eigenständig sein und sinnvolle Dienste anbieten. Dumme get-/set-Hüllen um private Member sind hingegen nicht sehr prickelnd.
Wann immer man eine get-Methode schreibt sollte man sich Fragen, ob man diese wirklich braucht oder ob man dem Objekt nicht lieber ein- oder mehrere spezifische Methoden spendiert. Also statt:y.getX().doZ();lieber:
y.doZ();Ähnliches gilt für set-Methoden.