なぜ、オブジェクト指向しなくてはいけないのか?
オブジェクト指向の本質は、コードの保守性を高めることにあります。依存度の高い処理とデータをオブジェクトとして一体化して扱い、かつオブジェクト間の依存関係は疎結合にしておくことで、変更や修正を加えてもその影響範囲が限定的な「変更に強いコード」となります。
このような強みはコードの再利用のしやすさにもつながり、一定規模以上でのプログラム開発やリリース後も継続的にアップデートを行うような現場で威力を発揮します。逆に、あとから手を入れることもない、閉じた環境で趣味のプログラムを書いているような場合は、オブジェクト指向のメリットはあまりないかもしれません。
オブジェクト指向の難しさ
一般的にオブジェクト指向は敷居が高いとされています。その難しさは、純粋にコードを書く以外に考えたり調べておかなければならないことが多い点にあります。
既存のオブジェクトを再利用するには、当然そのオブジェクトの持つ機能や入出力を把握する必要があります。
また、先に「依存度の高い処理とデータをオブジェクトとして一体化」すると書きましたが、どこまでを一体的に扱うべきという絶対的な基準が存在するわけではありません。細かくしすぎればコード全体が煩雑になりますし、大まかすぎれば肝心の保守性を下げます。
このように、オブジェクト指向を最大限に活かすには、コードの設計から考える必要があります。そして往々にして設計という作業は、それなりに場数をこなして全体を見渡せるようにならないと、なかなかうまくいかないものです。
考え方から鍛える『なぜJava』
しかし、いざ「場数をこなす」と言われてもなにから手を付けていいやら困惑します。『なぜ、あなたはJavaでオブジェクト指向ができないのか』では、オブジェクト指向の視点を養成する「ワーク」をこなしていくことで、オブジェクト指向の壁を乗り越えるための実践力を養います。Javaを題材にオブジェクト指向の習得を目指す方に、ぜひ目を通していただきたい一冊です。