Hi,
angelehnt an meine andere Stilfrage möchte ich ein leidiges Thema wieder aufgreifen.
Oft heißt es, dass static kein guter Stil ist und auf jeden Fall verhindert werden soll, wenn es nicht zu verhindern ist. Meist schafft man es, alle Methoden dynamisch zu gestalten, notfalls mit speziellen Konstruktoren, jedoch ist das manchmal ein in meinen Augen unnötiger Aufwand, dazu möchte ich ein paar Beispiele bringen:
Fall 1: Methode zum Prüfen eines Strings auf einen int-Wert
Nun habe ich eine Klasse, die lediglich diese Methode enthält: Parameter String, return boolean. Welchen Sinn macht es, die Methode non-static zu machen und sie bei jeder Anwendung initialisieren zu müssen? Es gibt keine Klassenattribute, die bei Nebenläufigkeit ein Problem darstellen könnten.
Zugegeben, hier ist der Mehraufwand nicht unbedingt vorhanden.
Fall 2: Methode zum Erstellen einer noch nicht definierten Instanz
Klassen B und C erben von Klasse A, eine (statische) Methode in Klasse A entscheidet, welche spezielle Klasse nun instantiiert wird und gibt sie zurück. Klasse A ist abstract.
Hier wird es nun pikant: muss ich nun eine spezielle Klasse instantiieren (fragt sich nur welche), um die Methode aufzurufen, die mir die eigentlich gewollte Instanz zurückliefert? Oder soll ich diese ganze Methode in eine externe Klasse auslagern, was in meinen Augen noch unsinniger ist?
Was sagt ihr dazu?
VG
angelehnt an meine andere Stilfrage möchte ich ein leidiges Thema wieder aufgreifen.
Oft heißt es, dass static kein guter Stil ist und auf jeden Fall verhindert werden soll, wenn es nicht zu verhindern ist. Meist schafft man es, alle Methoden dynamisch zu gestalten, notfalls mit speziellen Konstruktoren, jedoch ist das manchmal ein in meinen Augen unnötiger Aufwand, dazu möchte ich ein paar Beispiele bringen:
Fall 1: Methode zum Prüfen eines Strings auf einen int-Wert
Nun habe ich eine Klasse, die lediglich diese Methode enthält: Parameter String, return boolean. Welchen Sinn macht es, die Methode non-static zu machen und sie bei jeder Anwendung initialisieren zu müssen? Es gibt keine Klassenattribute, die bei Nebenläufigkeit ein Problem darstellen könnten.
Zugegeben, hier ist der Mehraufwand nicht unbedingt vorhanden.
Fall 2: Methode zum Erstellen einer noch nicht definierten Instanz
Klassen B und C erben von Klasse A, eine (statische) Methode in Klasse A entscheidet, welche spezielle Klasse nun instantiiert wird und gibt sie zurück. Klasse A ist abstract.
Hier wird es nun pikant: muss ich nun eine spezielle Klasse instantiieren (fragt sich nur welche), um die Methode aufzurufen, die mir die eigentlich gewollte Instanz zurückliefert? Oder soll ich diese ganze Methode in eine externe Klasse auslagern, was in meinen Augen noch unsinniger ist?
Was sagt ihr dazu?
VG