Sven Rautenberg: Konfiguration, OOP² oder doch nur Rad² ?

Beitrag lesen

Moin!

ich hoffe heute mal auftrumphen zu können :).

Leider nein.

In meinem System gibt es für allgemeine Sachen ein Singleton.

Singletons sind sogar schon vom Erfinder des Singleton-Patterns in der GoF offiziell wieder zurückgenommen worden. Du wirst verstehen, wenn ich folglich ausrufe: "Ausgerechnet Singletons!".

Dieses hat sehr viele Methoden, die alle meistens nur einen Wert zurück liefern.

Es ist also nicht nur Singleton, sondern auch noch ein Gott-Objekt. Mit so einem haben meine Kollegen und ich derzeit auch zu kämpfen, und keiner ist der Ansicht, sowas wäre eine tolle Idee.

Im Moment sind das ganz ganz einfache Konstrukte getMethode{ return "wert";}. Da das ganze aber in einer Methode bzw. in einem Objekt gekapselt ist, könnte ich die Sachen später auch aus der Datenbank holen.

Jaja, INI-Dateien sind dazu ja die Vorstufe (wobei die Frage aufkommen wird: Wie kriegt man die Konfiguration aus der Datenbank ausgelesen, wenn man dazu die Datenbankkonfiguration auslesen muss?). Been there, done that, have the t-shirt.

Nichts gegen INI-Dateien. Aber gegen Konfigurations-Singletons.

Dann gibt es noch Spezialfälle. So habe ich z.B. nach dem gleichen Prinzip eine Objekt welches mir Links zusammenbaut. Ich habe z.B. ein Objekt mit den Daten eines Users. Das schiebe ich in die Methode getUserLink und bekomme den Userlink zurück. Damit habe ich alle Links im System zentralisiert. Das alles war eine Reaktion auf das Werk meines Kollegen hier in der Arbeit. Der hat nämlich im kompletten System die Links hardcodiert überall hingeschrieben. PHP, JS, HTML ... alles voller Friendly URL Links. Dann kam irgendwann der Chef und meinte "profil" soll jetzt "profile" heißen. Das hat Stunden gedauert das zu finden und zu ändern.

Dependency-Injection ist die Methode der Wahl. Dann braucht man auch keine Konfigurations-Singletons.

In meiner Welt gibt es keine Klassen mit gleichem Namen. Deswegen brauche ich mich mit dem Begriff "Namespace" nicht auseinander zu setzen.

Stattdessen hast du alles mit dem Singleton gepflastert. Und wenn dein Chef jetzt kommt und sagt: "Die Singletonklasse muss anders heißen", dann sitzt du wieder da und arbeitest an allen Stellen alles um.

- Sven Rautenberg