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.


Anmelden zum Antworten