RSS Der tägliche WTF
Folgen
CodeSOD: Objektifiziert
Ein Entwickler mit 5 Jahren Erfahrung arbeitete an einem Projekt und äußerte seine Vorliebe für objektorientiertes Programmieren, da er glaubt, dass es den Code sauber und klar macht. Er erstellte ein Web-Scraping-Tool mit Java-Objekten, darunter UrlHolder, UrlDownloader und UrlLinkExtractor. Die UrlHolder-Klasse ist ein Wrapper um eine Zeichenfolge, aber sie macht die Zeichenfolge privat und bietet keine Zugriffsmethoden. Die UrlDownloader-Klasse umschließt ein UrlHolder-Objekt und hat eine öffentliche Zeichenfolge namens downloadPage, aber auch sie fehlen Zugriffsmethoden. Die UrlLinkExtractor-Klasse umschließt ein UrlDownloader-Objekt und hat eine Methode zum Extrahieren von Links, aber sie verwendet die öffentliche Zeichenfolge-Eigenschaft downloadPage von UrlDownloader. Das gesamte Ziel dieses Codes ist es, eine Zeichenfolge an die extract-Methode zu übergeben, aber es ist übermäßig kompliziert. Der Code ist ein Beispiel für ein schlechtes objektorientiertes Design, mit unnötigen Schichten von Abstraktion und fehlenden Zugriffsmethoden. Der Autor des Textes ist von diesem Code verwirrt und fragt sich, ob er objektorientiertes Programmieren überhaupt versteht. Der Code ist übermäßig komplex und demonstriert keine guten objektorientierten Designprinzipien. Der Autor kritisiert den Ansatz des Entwicklers zum objektorientierten Programmieren, indem er behauptet, dass es nicht so sauber und klar ist, wie behauptet.