普段オブジェクト指向言語であるActionScriptを触っているわけですが、実際にオブジェクト指向とはなんぞや、と言われると今ひとつ理解できていない気がしたので、本を読んでみました。

「いちばんやさしい」というくらいだからさぞわかりやすいだろう、ということでこちらの本をチョイス。
以下、改めて内容を振り返ってみる為のメモも兼ねてとりとめなく書いてみます。

プログラミングの本ではない

目的達成のための手段であるオブジェクト指向をその成り立ち、概念、プログラミングにおける導入方法等の様々な面で広く浅く解説した入門書。

目次と概要

  • オブジェクト指向の歴史
    →SmallTalkやSimulaといったオブジェクト指向の起源からJava, C++への歴史的な流れ
  • オブジェクト指向の概念を理解する
    →現実世界を例にとったオブジェクト指向の概念解説
  • オブジェクト指向プログラミングへの道
    →大規模開発における構造化プログラミングの問題点とオブジェクト指向の登場
  • オブジェクト指向プログラミングの特徴
    →Javaのコードを例にとったカプセル化・イベント処理・継承・多態性等の解説
  • オブジェクト指向分析
    →オブジェクト指向を用いた物事の分析・設計手法とUMLの概念解説
  • オブジェクト指向への疑問とその解答
    →オブジェクト指向の得手不得手の解説 

雑感

本書によれば、オブジェクト指向の本質は

  • 適用する対象を、オブジェクトの集まりとしてとらえる
  • 適用対象が持つすべてのストーリーを、そのオブジェクトの間でのやり取りに置き換える

の2つだけとのこと。これは設計の段で各要素の振る舞いを考える時や、実装におけるクラス分け等でやっている事なわけで、オブジェクト指向言語に触れるということは、自然とそういう本質を体験するということなのかと。それらを実際にどう行うかという点で、「属性」「状態」「責務」といった言葉で具体的な例を挙げて表現してくれている点は、実に「やさしく」て分かりやすい。

上記にもあるように、プログラミングがどうというよりは入門的な知識の本なので、それぞれの知識が満遍なく一歩だけ進む、という感じ。オブジェクト指向プログラミングを深く理解する為にはもっともっと踏み込んだ本に当たる必要がある。ASに限らず複数の言語に触れていると、各言語がどうオブジェクト指向を実現しているのか、オブジェクト指向以外の言語ではどういうアプローチが取られているのかがより理解できるのではないか。

 

ということで本当にメモ状態になってしまってあれですが、入門書としては良書ではないかと思います。
ご興味があればぜひ。

HTML5飯