確かにこの本は予備知識なしに読むのは難しいですね。<BR>まず、"デザインパターン"とは何かということを、そしてその記述の仕方(パターン名、問題、解決、結果)を第1章で説明されていますが、事前に知っておいたほうが読みやすいと思います。<P>第2章ではLexiというTexに似たドキュメントエディタのなかにどんなデザインパターンが使われているか書かれています。個人的にもデザインパターンを説明するにはテキストエディタや描画エディタが最適だと思い、2章も押さえておくと以降も理解しやすいです。<P>第3章以降でやっとそれぞれ(生成、構造、振る舞い)のデザインパターンが紹介されています。"生成"、"構造"、"振る舞い"というのが何を意味しているのか初めはよくわかりませんでしたが、各パターンを見ていくうちにこの区別の仕方が理解できます。<P>ただし各章を順番どおりに読んでいくのではなく、後へ先へページを何度もめくっていく中で理解していくことができるでしょう。<BR>「デザインパターン」を学ぶ上で、結城浩氏の「Java言語で学ぶデザインパターン入門」やW.J. ブラウンの「アンチパターン―ソフトウェア危篤患者の救出」もお勧めです。
すべてC++ベースで論じてあり、Javaに関してはC++から変換したJavaコードしかない、よってJava特有の実装上の考慮点は自分で気づかなくてはならない。これは本書の責任ではなく、GoF95も6年の歳月による経年劣化ともいえる。UML表記も然りで、UML1.1以前の表記なので、多少本書のクラス図の書き方に目を慣らす必要がある。だが基本的教科書として、今なお、必須の書だろう。
これを理解できたとき、「オブジェクト指向とはこのためにあったのか」と思いました。<BR>この本が出るまでは、オブジェクト指向とは継承、カプセル化のためにあると思っていましたが、これを読んで「ポリモフィズム(多体性)」こそが最も重要であることがわかりました。<P>全部を読もうとすると難しいです。前半を読んだあと、簡単そうなパターンを理解するよう努めて下さい。おすすめは「イテレータ」かな。<P>もしかしたら、”あたりまえジャン”と思うかもしれません。Javaなんかは言語ごと影響受けてますので。そういう方は”あたりまえジャン”の”あたりまえ”が如何なる理由からきているかをトクトクと説明していますので、よく読んでください。