Grunnleggende konsepter
Klassen mit den Suffixen "-Er/-Or" und "-Utils" weisen im Durchschnitt eine mehr als 2,5-mal höhere Komplexität auf als andere Klassen.
Sammendrag
Die Studie analysierte 13.861 Java-Klassen aus 212 Open-Source-GitHub-Repositorys und untersuchte die Komplexität und Kohäsion von Klassen mit den Suffixen "-Er/-Or" und "-Utils" im Vergleich zu anderen Klassen.
Die Ergebnisse zeigen:
- Klassen mit den Suffixen "-Er/-Or" und "-Utils" haben im Durchschnitt eine 2,5-mal höhere zyklomatische Komplexität (CC) und kognitive Komplexität (CoCo) als andere Klassen.
- Die Kohäsionsmetrik LCOM5 ist für Klassen mit den Suffixen "-Er/-Or" und "-Utils" deutlich schlechter, was auf eine geringere Kohäsion hindeutet.
- Die Kohäsionsmetrik NHD zeigt für Klassen mit dem "-Utils"-Suffix sogar eine leicht bessere Kohäsion als für andere Klassen.
Insgesamt deuten die Ergebnisse darauf hin, dass Klassen mit den untersuchten Suffixen eher ein Anzeichen für schlechtes Design sind, da sie tendenziell komplexer und weniger kohäsiv sind.
Statistikk
Die durchschnittliche zyklomatische Komplexität (CC) beträgt für Klassen mit dem Suffix "-Er/-Or" 14,26, für Klassen mit dem Suffix "-Utils" 15,444 und für alle anderen Klassen 5,983.
Die durchschnittliche kognitive Komplexität (CoCo) beträgt für Klassen mit dem Suffix "-Er/-Or" 20,106, für Klassen mit dem Suffix "-Utils" 20,931 und für alle anderen Klassen 7,731.
Sitater
"Funktor-Klassen stellen ein Problem für die Wartbarkeit dar, da sie typischerweise lediglich Aggregate von Prozeduren sind, die kaum miteinander in Beziehung stehen."
"Klassen mit Namen, die auf '-Er/-Or' oder '-Utils' enden, werden oft kritisiert, da sie die objektorientierten Entwurfsprinzipien verletzen und das Design weniger strukturiert machen."