| ホーム > 増補改訂版Java言語で学ぶデザインパターン入門 | 検索 | 更新情報 |
| なか見!検索 | 読者の声 | Java入門書 | マルチスレッド本 | リファクタリング本 |
|
本書は、わかりやすいJavaのサンプルプログラムを通して、デザインパターンを学ぶ本です。 非常の多くの読者から愛読され、プログラミング技術書には珍しいほどのロングセラーとなっています。
こんにちは、結城浩です。 ここは、 『増補改訂版Java言語で学ぶデザインパターン入門』 (ソフトバンクパブリッシング刊) のホームページです。
本書は、デザインパターンというものをやさしく解説した本です。 デザインパターンの原典に登場する23個のパターンすべてについて、 Java言語によるサンプルプログラムをつけています。
『Java言語で学ぶデザインパターン入門』は、 2001年に刊行されてから多数の読者にご愛読いただいています。 2003年には、インプレス社の 『コンピュータの名著・古典100冊』にも選ばれました。 みなさんに感謝します。
このたび、書籍全体をチェックして、より分かりやすく・読みやすくなるように細かな改訂作業を行いました。 また、巻末付録として、 デザインパターンに関して誤解されやすいポイントをQ&A形式で整理した「デザインパターンQ&A」 も追加し、 『増補改訂版Java言語で学ぶデザインパターン入門』として新たに刊行いたしました。 読者のみなさん、どうぞよろしくお願いいたします。
本書は、以下のような方にお勧めできる本です。
Java言語そのものについて初歩から学びたい方は、 以下のJava言語入門書もぜひご覧ください。
プログラムの「体質」を改善していくリファクタリングを学びたい方は、 以下の書籍をどうぞ。
『増補改訂版Java言語で学ぶデザインパターン入門』 結城浩 著 ソフトバンクパブリッシング刊 ISBN4-7973-2703-0 税込価格3990円(本体価格3800円)
以下のURLですぐに注文・購入できます。
もちろん全国の書店でもご購入できます。 店頭に見つからない場合には書店にご注文ください。
どなたでも、 本書のサンプルプログラムを以下からダウンロードできます。
取り扱い方法は、アーカイブファイルを展開後、 readme.txtファイルをお読み下さい。
質問は、 フォームへどうぞ。返事はお約束できませんが、どんなことでもお気軽に。
読者さんからのご指摘を感謝します。 なお、これまでの『Java言語で学ぶデザインパターン入門』のサポートページは以下に移動しました。
======================================================================
(2009-03-19)
p.250 : List 16-7 : 2行目
誤:
static public void main(String args[]) {
正:
public static void main(String args[]) {
======================================================================
(2006-10-05)
p.395 : 問題7-2の解答 : 7行目
誤:
getResult → buildResult
正:
close → buildDone
======================================================================
(2006-10-05)
p.396 : List A7-2およびList A7-3
誤:
public void buildTitle(String title) {
...
public void buildString(String str) {
...
public void buildItems(String[] items) {
...
public void buildDone() {
正:
protected void buildTitle(String title) {
...
protected void buildString(String str) {
...
protected void buildItems(String[] items) {
...
protected void buildDone() {
======================================================================
(2006-08-04)
p.44 : 問題 3-3 : (第7刷で修正)
誤:
スーパークラスからのみ呼び出せるように
正:
継承関係および同一パッケージにあるクラスからのみ呼び出せるように
======================================================================
(2006-08-04)
p.149 : 問題10-4 : (第7刷で修正)
誤:
挿入ソート(insertion sort)
正:
選択ソート(selection sort)
======================================================================
(2006-08-04)
p.150 : List 10-8 : (無駄な交換を削除) : (第7刷で修正)
public class SelectionSorter implements Sorter {
public void sort(Comparable[] data) {
for (int i = 0; i < data.length - 1; i++) {
int min = i;
for (int j = i + 1; j < data.length; j++) {
if (data[min].compareTo(data[j]) > 0) {
min = j;
}
}
Comparable passingplace = data[min];
data[min] = data[i];
data[i] = passingplace;
}
}
}
======================================================================
(2006-08-04)
p.432 : List A18-1 : (第6刷で修正)
誤:
this.fruits = new Vector();
正:
this.fruits = new ArrayList();
======================================================================
(2006-08-04)
p.108 : 下から2行目 : (第6刷で修正)
誤:
java.util.Vectorクラスから
正:
java.util.ArrayListクラスから
======================================================================
(2006-08-04)
p.158 : 上から6行目 : (第6刷で修正)
誤:
Vectorとして定義されています。
正:
ArrayListとして定義されています。
======================================================================
(2006-08-04)
p.159 : 上から3行目 : (第6刷で修正)
誤:
操作をVectorに委譲
正:
操作をArrayListに委譲
======================================================================
(2005-01-10)
p.387 : List A4-2 : (第3刷での誤り)
誤:
public Hashtable getDatabase() {
正:
public HashMap getDatabase() {
======================================================================
(2004-10-28)
p.245 : 下から3行目〜最終行 : (第2刷での誤り)
誤:
引数で渡しているthisは、……と判断するのです。
正:
(ソースコードの改訂に合わせて文章を削除)
======================================================================
(2004-08-30)
p.382 : 問題1-1の解答 : (第2刷での誤り)
誤:
this.book = new Vector(initialsize);
正:
this.book = new ArrayList(initialsize);
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。
書籍中の誤りのご指摘やご質問も歓迎いたします。