オブジェクト指向における再利用のためのデザインパターン
オブジェクト指向における再利用のためのデザインパターン
オブジェクト指向における再利用のためのデザインパターン
ソフトバンククリエイティブ ソフトバンククリエイティブ Erich Gamma
¥ 5,040
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)
増補改訂版Java言語で学ぶデザインパターン入門
アナリシスパターン―再利用可能なオブジェクトモデル (Object Technology Series)
新訂版 More Effective C++
■設計をする人は一度見る価値あります 評価5 日付2008-01-26ソフトウェア開発者等、設計作業に関わるかたは、読んでみる価値があります
■オブジェクト指向言語を用いた開発者に必携の本 評価5 日付2007-04-27開発にオブジェクト指向言語を使用する大きな利点の一つはクラス(階層)の再利用性であるが、現実にはそのようにクラス設計をする事は難しい。本書は再利用性を念頭に置いてクラス設計の手法(デザインパターンと呼ぶ)を経験に基づいて体系化した名著である。Javaをご存知の方は、Javaの各クラス・ライブラリ階層が本書のデザインパターンと酷似している事にお気付きであろう。
本書ではデザインパターンを大きく次の三つに分けている。
(1) 具象クラスを生成するための抽象(インタフェース)パターン
(2) 構造に関するパターン
(3) 振舞いに関するパターン
例えば、(3)で説明されるIteratorパターンはJavaでその名前のまま出て来る。また、(1)で説明されるFactoryパターンが(呼称はともかく)恐らく一番ポピュラーな手法で、具象クラス群の生成を念頭に置きながら、特定の具象クラスに依存しない真に共通な要素を抽象的に定義するパターンである。
本書の内容は学術的に導いたものではなく、経験則に基づいたものだけに実践的である。それでいて、体系的に美しい。機能的に優れたものはデザインも美しいという見本のようである。本デザインパターンの考察にあたっては、建築学を参考にしたというのも面白い。本書を順に全て読む事は容易ではないが、本書の内容を身に付ける事で具象化や継承によるクラスの再利用性が格段に向上する事請け合いである。オブジェクト指向言語を使用してプログラミングをする方にとっては必読と言って良い名著。
■原書は未だにトップランク 評価5 日付2006-03-02Addison-Wesleyのホームページでも売れている本の中ではいつも上位ですね。94年に出た本でここまで売れているのはすごいと思います。私が持っている英語版は刷りを重ねて29刷ですしね・・・。
デザインパターンに関して、非常に多くの情報が入っている本だと思います。これを理解するにはやはり少し時間が必要かもしれません。
新しいことがアタマに入ってきにくくなりましたが、プログラムを組む身としては身につけておきたい内容です。
■理解しておくとよい本 評価5 日付2005-09-27確かにこの本は予備知識なしに読むのは難しいですね。
まず、"デザインパターン"とは何かということを、そしてその記述の仕方(パターン名、問題、解決、結果)を第1章で説明されていますが、事前に知っておいたほうが読みやすいと思います。
第2章ではLexiというTexに似たドキュメントエディタのなかにどんなデザインパターンが使われているか書かれています。個人的にもデザインパターンを説明するにはテキストエディタや描画エディタが最適だと思い、2章も押さえておくと以降も理解しやすいです。
第3章以降でやっとそれぞれ(生成、構造、振る舞い)のデザインパターンが紹介されています。"生成"、"構造"、"振る舞い"というのが何を意味しているのか初めはよくわかりませんでしたが、各パターンを見ていくうちにこの区別の仕方が理解できます。
ただし各章を順番どおりに読んでいくのではなく、後へ先へページを何度もめくっていく中で理解していくことができるでしょう。
「デザインパターン」を学ぶ上で、結城浩氏の「Java言語で学ぶデザインパターン入門」やW.J. ブラウンの「アンチパターン―ソフトウェア危篤患者の救出」もお勧めです。
■デザインパターンの定番本 評価4 日付2005-09-18デザインパターンのバイブルとして有名な本です。
前半では、後半で説明する各種のデザインパターンを使って、具体的にエディタアプリケーションの設計を説明しています。初心者が前半部分から読むとかなり眠くなると思います。
後半では、23のデザインパターンについて個別に解説されています。使用用途や保守の際の注意点、メリット・デメリットなど。各デザインパターンについて詳細な分析がなされています。
ただ、具体例に使用している言語が、C++やSmallTalkであるため、両方の言語を知らないとわかりにくかったりします。個人的にはC++版・SmallTalk版に分けてほしいような。
解説が難解なので、他の良書から入ることをお勧めします。結城浩氏の「Java言語で学ぶデザインパターン入門」です。サンプルコードがJavaなのでC++に即適用ができない部分もありますが、デザインパターンの概念はこっちのほうがわかりやすいです。こっちを読むにはJavaの知識は必須です。
⇒ もっと詳しく調べる