Logger oder UI Anbindung an verschiedene Module

80 views
Skip to first unread message

Sebastian Trueman

unread,
Apr 15, 2014, 2:35:26 AM4/15/14
to clean-code...@googlegroups.com
Hallo liebe CC Gruppe :),

ich bin relativ neu hier und habe vor kurzem das Buch Clean Code von R. Martins sowie dessen Lehrvideos bis hin zu den SOLID Prinzipien geschaut. Ich muss sagen ich bin begeistert und es rundet mein Studium sehr gut ab. Lediglich beim "Verknüpfen" der Module tuhe ich mich aufgrund mangelnder Erfahrung noch etwas schwer.

Ich habe bei meiner aktuellen Architektur eines kleinen Projekts ein Problem bzgl. der Konstruktoren für die Klassen, welche u. A. Logger sowie UI Ausgaben bewerkstelligen sollen.

Dabei gibt es die Probleme bei folgenden Lösungsansätzen damit das Objekt in der Klasse Verfügbar ist:

1) Instanziierung über den Konstruktor:
Die Konstruktoren werden immer größer und haben bei UI + Logger schon 2 Parameter. Ein Konstruktor mit >= 4 Parameter ist somit nicht unwahrscheinlich.

2) Instanziierung über setter:
Würde Factorys o. Ä. benötigen

Kennt jemand "best practices" für derartige Probleme?

Vorab vielen Dank

Grüße
Sebastian

Stefan Lieser

unread,
Apr 15, 2014, 4:08:32 AM4/15/14
to clean-code...@googlegroups.com

> Hallo liebe CC Gruppe :),

Mir ist CCD Gruppe lieber als CC Gruppe ;-) Herzlich willkommen!

> 1) Instanziierung über den Konstruktor:
> Die Konstruktoren werden immer größer und haben bei UI + Logger schon 2 Parameter. Ein Konstruktor mit >= 4 Parameter ist somit nicht unwahrscheinlich.

Ich sehe kein Problem darin, dass Konstruktoren viele Parameter haben. Wenn die Klasse für die Integration von Funktionalität zuständig ist, dann hat sie typischerweise viele Abhängigkeiten. Das ist sozusagen ihr Job. Und für diesen Job braucht der ctor eben viele Parameter.

Was stört dich an den >= 4 Parametern?

> 2) Instanziierung über setter:
> Würde Factorys o. Ä. benötigen

Setter für Abhängigkeiten nutze ich nur für optionale Abhängigkeiten. Alle Abhängigkeiten die zwingend sind löse ich über ctor Parameter auf. So sieht der Verwender deutlich, dass es ohne nicht geht.

Viele Grüße
Stefan Lieser
--

Sebastian Trueman

unread,
Apr 15, 2014, 5:16:36 AM4/15/14
to clean-code...@googlegroups.com

Am Dienstag, 15. April 2014 10:08:32 UTC+2 schrieb slieser:

Was stört dich an den >= 4 Parametern?


Nicht speziell die >= 4 Parameter bereiten mir Bauchschmerzen sondern die Vorstellung, dass Klassen jeweils die gleichen Konstruktorparameter verwenden, die mit der Geschäftslogik nichts direkt zu tun haben. Spring löst dieses Problem glaub ich mit Hilfe von Aspektorientierter Programmierung (AOP).
Singletons oder Instanziierung neuer Logger Objekte im Konstruktor wären eine Möglichkeit aber würden die Abhängigkeiten verschleiern.

Würde mich über weitere Meinungen / Erfahrungen / Lösungsvorschläge freuen.

VG
Sebastian
Reply all
Reply to author
Forward
0 new messages