The Daily WTF на русском
Подписаться
CodeSOD: Объектифицированный
Разработчик с 5-летним опытом работы над проектом выразил свою любовь к объектно-ориентированному программированию, считая, что оно делает код чистым и понятным. Он создал инструмент для веб-скрейпинга с использованием объектов Java, включая UrlHolder, UrlDownloader и UrlLinkExtractor. Класс UrlHolder является оболочкой вокруг строки, но он делает строку приватной и не предоставляет доступа к ней. Класс UrlDownloader оборачивает UrlHolder и имеет публичную строку под названием downloadPage, но также не имеет доступа к ней. Класс UrlLinkExtractor оборачивает UrlDownloader и имеет функцию для извлечения ссылок, но он использует публичную строковую свойство downloadPage из UrlDownloader. Основная цель этого кода - передать строку в функцию извлечения, но он чрезмерно усложнен. Этот код является примером плохого объектно-ориентированного проектирования, с ненужными уровнями абстракции и отсутствием доступа к свойствам. Автор текста сбит с толку этим кодом и сомневается в своем собственном понимании объектно-ориентированного программирования. Код чрезмерно сложен и не демонстрирует хорошие принципы объектно-ориентированного проектирования. Автор критикует подход разработчика к объектно-ориентированному программированию, предполагая, что он не так чист и понятен, как он утверждает.