Statische Methoden sind einfach nur Funktionen - also Vorsicht!

Tags:

Da, ich hab's gesagt. So dahin geklatscht wie es wirkt, so simpel ist es auch. String::format() und string_format() ist genau das Gleiche. Der einzige Vorteil den die statische Methode mitbringt, ist, dass durch die Klasse eine Art Namensraum (oder Tag) gegeben ist.

Aber im Endeffekt behaupte ich: Statische Methoden leiten uns dazu, uns von OOP abzuwenden und zurück zu unseren prozeduralen Wurzeln zu gehen. Oder anders gesagt: Faul zu sein.

Bevor ihr mich jetzt würgt, möchte ich anmerken, dass statische Methoden (und Variablen) natürlich ihre Daseinsberechtigung haben. Und man muss sie auch nicht um jeden Preis vermeiden. Doch sollten eure Klassen nur so vom static-Schlüsselwort durchzogen sein, ja dann sollte ihr nochmals die Architektur eurer Applikation überprüfen.

Als Daumenregel postuliere ich:

Statische Methoden sind immer nur dann okay, wenn sie sich auch wirklich wie Funktionen verhalten. Dazu müssen sie zustandloslos sein (selbe Eingabe = selbe Ausgabe, keine Nebenwirkung, etc.). Bei jeder anderen Anwendung ist Vorsicht geboten.

Nachfolgend ein paar wild durchmixte Szenarien, wo wir auf statische Methoden und Variablen treffen.

Um noch auf ein paar Probleme einzugehen:

Ergänzungen? Korrekturen? :)

Ähnliche Artikel

Kommentare