Ich wollte nicht Leichenflederer spielen und in diesen Thread schreiben. Daher ein neues Thema dazu. Wenn die Moderatoren das anders sehen, kann man die Threads ja immer noch mergen. (Hoffe ich. ^^)
Ich nutze seit kurzem Checkstyle über Sonar und da ist mir diese Meldung aufgefallen: Design for Extension. Kurzes Googeln hat mir gezeigt, dass ich nicht der Einzige bin, der darüber stutzt. Wie aus diesem Thread ersichtlich ist, arbeite ich neuerdings mit dem DI-Framework Guice. Das heißt (grob vereinfacht für alle Nicht-DIler), ich habe eine ganze Reihe von Interfaces und dahinter jeweils eine Implementierung. Bei den Methoden der Impl-Klassen zeigt mir Checkstyle dann diese Meldung an. Auch bei den equals-, hashCode- und toString-Methoden.
Eine Lösung wäre, die Impl-Klassen zusätzlich final zu deklarieren, um nicht bei jeder Methode final dranklatschen zu müssen. Die Idee hinter dieser Regel ist ja nicht schlecht, aber irgendwie missfällt mir das vom "Codeaussehen" (was wahrscheinlich subjektiver Quatsch ist).
Wie geht ihr mit dieser Regel von Checkstyle um? Habt ihr sie ausgeschaltet oder ignoriert ihr sie einfach?
Was mich besonders interessiert: Ist es üblich, wenn es nur eine Implementierung für ein Interface gibt, diese als final zu deklarieren?
Ich nutze seit kurzem Checkstyle über Sonar und da ist mir diese Meldung aufgefallen: Design for Extension. Kurzes Googeln hat mir gezeigt, dass ich nicht der Einzige bin, der darüber stutzt. Wie aus diesem Thread ersichtlich ist, arbeite ich neuerdings mit dem DI-Framework Guice. Das heißt (grob vereinfacht für alle Nicht-DIler), ich habe eine ganze Reihe von Interfaces und dahinter jeweils eine Implementierung. Bei den Methoden der Impl-Klassen zeigt mir Checkstyle dann diese Meldung an. Auch bei den equals-, hashCode- und toString-Methoden.
Eine Lösung wäre, die Impl-Klassen zusätzlich final zu deklarieren, um nicht bei jeder Methode final dranklatschen zu müssen. Die Idee hinter dieser Regel ist ja nicht schlecht, aber irgendwie missfällt mir das vom "Codeaussehen" (was wahrscheinlich subjektiver Quatsch ist).
Wie geht ihr mit dieser Regel von Checkstyle um? Habt ihr sie ausgeschaltet oder ignoriert ihr sie einfach?
Was mich besonders interessiert: Ist es üblich, wenn es nur eine Implementierung für ein Interface gibt, diese als final zu deklarieren?
Zuletzt bearbeitet: