CodeSOD: Objectified Note

CodeSOD: Objectified

A developer with 5 years of experience was working on a project and expressed their fondness for Object Oriented programming, believing it makes code clean and clear. They created a web scraping tool using Java objects, including UrlHolder, UrlDownloader, and UrlLinkExtractor. The UrlHolder class is a wrapper around a string, but it makes the string private and provides no accessors. The UrlDownloader class wraps a UrlHolder and has a public string called downloadPage, but it also lacks accessors. The UrlLinkExtractor class wraps a UrlDownloader and has a function to extract links, but it uses the public string property downloadPage from UrlDownloader. The entire goal of this code is to pass a string to the extract function, but it is overly complicated. The code is an example of poor Object Oriented design, with unnecessary layers of abstraction and lack of accessors. The author of the text is confused by this code and questions their own understanding of Object Oriented programming. The code is overly complex and does not demonstrate good Object Oriented design principles. The author is criticizing the developer's approach to Object Oriented programming, suggesting that it is not as clean and clear as they claim.