Schlechter Stil wenn man alle public: hat?



  • lolz schrieb:

    Möglicherweise hat sie die Connection als Attribut gespeichert, aber das tut nichts zur Sache und kann dir als Benutzer der Klasse auch egal sein. Denn du willst mit der Klasse bzw. einem Objekt der Klasse arbeiten und nicht mit dessen Attributen.

    Ja. Eigentlich wollte ich ja auch wissen wie am mit dem Strategiepattern das besser machen kann, aber naja. 😕



  • Ok. Nochmal was ich meine. Ich vertrete die Meinung, dass Member private oder zumindest protected sein sollten und es keine Setter/Getter geben soll. Den Zustand eines Objektes repraesentiert das Objekt selbst. Es muss nicht extra ausgelesen werden und darf nicht beliebig gesetzt werden. Objekte kollaborieren mit Objekten, nicht mit deren Membern. Wenn man nun weitere Funktionalitaet hinzufuegen moechte und Vererbung nicht ausreicht, da man explizit Zugriff auf Member braucht, kann dass Visitor-Pattern einem abhelfen.

    Was "flexible" Setter/Getter angeht kann ich nur sagen: ein set/get hat eine feste Semantik. Es setzt bzw. gibt zurueck. Sobald es darueber hinausgeht, verdieht die Funktion einen anderen Namen, denn sie setzt/liefert nicht nur, sondern geht darueber hinaus.

    Zum Java Design: ein Stack ist kein Vector und verhaelt sich auch nicht so. Es verletzt daher das LSP. Deswegen lasse ich dieses Authoritaetsargument auch nicht zu (Zumal man als erwachsener, selbstdenkender Mensch jede Authoritaet kritisch hinterfragen sollte).


Anmelden zum Antworten