結城浩
本書は、デザインパターンの定番入門書です。
デザインパターン原典に登場する23個のパターンすべてについて、 わかりやすいJavaのサンプルプログラムを使って解説しています。
多くの読者から愛読されている本書で、 あなたもデザインパターンに親しみましょう。
本書は、こんな方へおすすめです。
Java言語そのものについて初歩から学びたい方は、 以下のJava言語入門書もぜひご覧ください。
プログラムの「体質」を改善していくリファクタリングを学びたい方は、 以下の書籍をどうぞ。
『増補改訂版Java言語で学ぶデザインパターン入門』
結城浩 著
SBクリエイティブ刊
ISBN-10: 4-7973-2703-0
ISBN-13: 978-4797327038
価格3800円(税抜)
どなたでも、 本書のサンプルプログラムを以下からダウンロードできます。
取り扱い方法は、アーカイブファイルを展開後、 readme.txtファイルをお読み下さい。
======================================================================
(2013-08-16)
p.178: 1行目
誤:クラス図を示します。
正:オブジェクト図を示します。
======================================================================
(2013-08-16)
p.178: Fig.12-4のキャプション
誤:b3,b2,b1のクラス図
正:b3,b2,b1のオブジェクト図
======================================================================
(2013-08-16)
p.375: List 23-9: 14行目
誤:
}
} catch (Exception e) {
正:
}
reader.close();
} catch (Exception e) {
======================================================================
(2011-06-28)
p151 : List 10-10 : 6行目
誤:
SortAndPrint sap = new SortAndPrint(data, new InsertSorter());
正:
SortAndPrint sap = new SortAndPrint(data, new SelectionSorter());
======================================================================
(2009-10-10)
p.448 : List A22-3 : 下から2行目に追加
誤:
radius = 6;
}
正:
radius = 6;
history.append(new ColorCommand(this, color));
}
======================================================================
(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);
あなたのご意見やご感想をお送りください。
あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。