CodeSOD: Objetificado Nota

CodeSOD: Objetificado

Un desarrollador con 5 años de experiencia estaba trabajando en un proyecto y expresó su afecto por la programación orientada a objetos, creyendo que hace que el código sea limpio y claro. Creó una herramienta de extracción de datos web usando objetos Java, incluyendo UrlHolder, UrlDownloader y UrlLinkExtractor. La clase UrlHolder es un envoltorio alrededor de una cadena, pero hace que la cadena sea privada y no ofrece accedores. La clase UrlDownloader envuelve un UrlHolder y tiene una cadena pública llamada downloadPage, pero también carece de accedores. La clase UrlLinkExtractor envuelve un UrlDownloader y tiene una función para extraer enlaces, pero utiliza la cadena pública downloadPage de UrlDownloader. Todo el propósito de este código es pasar una cadena a la función extract, pero está excesivamente complicado. El código es un ejemplo de mala diseño orientado a objetos, con capas innecesarias de abstracción y falta de accedores. El autor del texto está confundido por este código y cuestiona su propia comprensión de la programación orientada a objetos. El código es demasiado complejo y no demuestra buenos principios de diseño orientado a objetos. El autor está criticando el enfoque del desarrollador hacia la programación orientada a objetos, sugiriendo que no es tan limpio y claro como ellos afirman.