オブジェクト指向技術は,それに熱狂するプログラマが世界中にたくさんいるように,間違いなく優れた概念です。体得したい概念が優れていればいるほど,習って覚えるというよりは,学びながら体験するうちに気づいて知ることの方が多いように思います。

 だから悩む経験が大事,なんて言うつもりはありません。説明しにくい概念を,うまく気づかせてくれる書籍がちゃんとあります。オブジェクト指向技術をきちんと理解できるお薦めの書籍を紹介しましょう。

憂鬱なプログラマのためのオブジェクト指向開発講座
Tucker! 著
翔泳社 発行
1998年5月 449ページ
3200円(本体)
bk1で購入する
Javaプログラムデザイン 第3版
戸松 豊和 著
ソフトバンク パブリッシング 発行
2002年2月 357ページ
2800円(本体)
bk1で購入する
Javaの格言
ナイジェル・ウォーレン+フィリップ・ビショップ 著
安藤 慶一 訳
ピアソン・エデュケーション 発行
2000年4月 324ページ
2400円(本体)
bk1で購入する

オブジェクト指向技術を
迷わず素早く学べる3冊

 最初に紹介するのは,「憂鬱なプログラマのためのオブジェクト指向開発講座」です。オブジェクト指向を学びたい人に向けて広くお薦めできます。本書は,オブジェクト指向とは何なのかを理解したうえで,オブジェクト指向の要素技術を学び,プログラムの分析/設計方法に応用して,動くプログラムを作成するまでを,ていねいに解説していきます。

 本書が特徴的なのは,抽象的な概念を後回しにして,実践的で具体的な例を挙げながら,プログラマの視点で解説してくれることです。サンプル・プログラムはC++で記述されていますが,JavaのプログラマでもちょっとだけC++を学べば十分読み解けるはずです。

 本書の著者は読者へよく配慮してくれます。なぜクラスなんてものを利用するのかといった,誰もが心にひっかかりそうな疑問から逃げずに,適切なタイミングでちゃんと答えてくれます。ちょっと不安になったときは,オブジェクト指向開発を学ぶ道のりを,今どこらへんまで歩いてきたのかを教えて勇気づけてくれます。ぜひ最初からじっくり読んでみてください。きっとオブジェクト指向とは何か,どうすれば使えるのかを理解できるはずです。

 「Javaプログラムデザイン 第3版」は,Javaを学び始めたのだが,てっとりばやくオブジェクト指向の世界に突入したい,というプログラマにお薦めです。プログラミング言語の入門書というと,ふつう簡単な入出力から始まって,変数の型,繰り返し,条件分岐などを解説していくものがほとんどですが,本書はまったく異なる構成をとっています。

 本書はオブジェクト指向とは何かを,テレビとテレビのリモコンにたとえて説明するところから始まります。ここでオブジェクト指向技術の概念を簡単に把握したら,今度はクラス,メソッド,コンストラクタなどオブジェクト指向プログラミング言語の基本的な要素の解説です。ここまで学び終えてやっと,Javaのclass宣言文が登場します。このclassって何だかはとりあえず忘れておいて,とにかく動かしてみましょう,というアプローチとはまったく逆を行く書籍です。他のプログラミング言語の経験があり,Javaを用いたオブジェクト指向プログラミングを会得したい人には,本書がよいショートカットを示してくれるでしょう。オブジェクト指向を意識したJava再入門にも向いています。

 Javaの経験をそれなりに積んでいるのなら,上手なオブジェクト指向プログラミングを指南してくれる「Javaの格言」をお薦めします。本書は,Javaでオブジェクト指向プログラミングをうまく実践するための42項目(Javaの規則,設計する時の原則,ヒントの三つに分類されています)を,Javaのサンプル・コードを示しながら解説していきます。

 最初から順番に読んでいくと,読者の経験に応じていくつかの「格言」が頭のすみに留まるはずです。この状態でプログラミングしたり,過去に書いたコードを見直したりすると,格言が頭の中でよみがえります。そこでまた本書を手にとると,より深い理解が得られるという仕掛けです。

 本書を読解するためには,少なくとも簡単なJavaのコードがすらすら読めないときついと思います。「アクセサ・メソッド」という単語が唐突にでてきても困らない程度のJavaの経験があればたぶん大丈夫でしょう。でも本書に取り組むときは一発で理解することを目指さないください。自分の経験を積み重ねつつ,二度三度と読み返してみることで,格言のありがたみを知る瞬間を何度も味わうことができるでしょう。

デザイン・パターンを
学ぶための2冊

Java言語で学ぶ
デザインパターン入門

結城 浩 著
ソフトバンク パブリッシング 発行
2001年6月 480ページ
3800円(本体)
bk1で購入する
オブジェクト指向における再利用のためのデザインパターン 改訂版
Erick Gamma,Richard Helm,Ralph Johnson,John Vlissides 著
本位田 真一,吉田 和樹 監訳
ソフトバンク パブリッシング 発行
1999年11月 414ページ
4800円(本体)
bk1で購入する
 オブジェクト指向開発を簡単にする可能性が高い技術として最近注目を集めているのがデザイン・パターンです。よく出てくるクラス構造のパターンを,再利用できるように体系的にまとめたものです。すでに適用して成果を挙げている事例もあるようです。

 デザイン・パターンは,Erick Gamma(エリック・ガンマ),Richard Helm(リチャード・ヘルム),Ralph Johnson(ラルフ・ジョンソン),John Vlissides(ジョン・ブリシディース)の4人が,彼らのオブジェクト指向開発の経験から,23のデザイン・パターンを導き出し,それぞれに名前をつけたことから始まります。彼らはThe Gang of Fourと呼ばれ,彼らのデザイン・パターンはその頭文字をとって「GoF(ゴフ)」と呼ばれています。

 このGoFのデザイン・パターンを学ぶ最初の1冊としてお薦めなのが「Java言語で学ぶデザインパターン入門」です。GoFが示した23のデザイン・パターンすべてを,例を挙げながらクラス図とサンプル・プログラムを読むことで学んでいきます。解説はきわめてていねいです。本書の冒頭では「デザインパターンを学ぶ前に」として,図の読み方,本書を読んで考えるときの心構えをやさしい口調で説明します。デザイン・パターンの説明でも,どのようなパターンなのか,そのパターンを使う時にどんなことに気を付けなければいけないかまで,ゆっくりきちんと説明してくれます。

 本書はJavaの基礎さえできていれば,簡単に読み進められるはずです。C++のプログラマでも,Javaの文法はそう難解には見えないはずなので,Javaの簡単な言語仕様のリファレンスが手元にあれば楽々と読み進められるでしょう。もしあなたがいくつかのプログラムを自力で作った経験があるなら,23のパターンを順番に読んでいくうちに「似たものを作ったことがある」と気がつくことがあるかもしれません。何か新しいプログラムを作ろうとしたときに,これはデザイン・パターンで読んだあれに近いと気がつく瞬間が訪れたなら,そのときがデザイン・パターンの恩恵を受ける瞬間です。

 「オブジェクト指向における再利用のためのデザインパターン 改訂版」は,GoFが著したデザイン・パターンの原典です。Javaで学ぶデザインパターン入門と同様に23のパターンを解説しています。

 本書のいいところは,なぜそのパターンを決めたのかという動機が詳細に記されていることです。作った人たちの言葉ですから,説得力は抜群です。深く,簡潔に,デザイン・パターンを解説しています。サンプル・プログラムは,C++またはSmallTalkで記述されています。

 すでにオブジェクト指向開発でクラス設計をいろいろ悩んできた方にとっては,その悩んだ経験と照らし合わせながら,本書を読むことで,デザイン・パターンをより深く理解できるでしょう。

 ただ,本書の原著は1995年発行で,今読むと多少古さを感じる部分があります。本書が掲げるサンプル・プログラムを読み込み,文章を理解するには,ちょっと古い知識を必要とするかもしれません。