CodeSOD: オブジェクト化された ノート

CodeSOD: オブジェクト化された

5年の経験を持つ開発者がプロジェクトに取り組んでいて、オブジェクト指向プログラミングに強い愛着を持っていた。彼は、コードをクリーンかつ明確にするために、Java オブジェクトを使用してウェブ スクレイピング ツールを作成した。UrlHolder クラスは文字列をラップしており、プライベートな文字列を持つが、アクセッサーを提供していない。UrlDownloader クラスは UrlHolder をラップしており、public 文字列の downloadPage を持つが、アクセッサーを提供していない。UrlLinkExtractor クラスは UrlDownloader をラップしており、リンクを抽出する関数を持つが、UrlDownloader の public 文字列プロパティの downloadPage を使用している。このコードの目的は、抽出関数に文字列を渡すことだが、過剰に複雑になっている。このコードは、不必要な抽象化の層とアクセッサーの不足という、悪いオブジェクト指向デザインの例である。テキストの著者は、このコードに混乱しており、自分自身のオブジェクト指向プログラミングの理解に疑問を呈している。このコードは、過剰に複雑であり、良いオブジェクト指向デザインの原則を示していない。著者は、開発者のオブジェクト指向プログラミングのアプローチを批判しており、彼が主張するほどクリーンかつ明確ではないと示唆している。