長瀬 嘉秀 監修
株式会社テクノロジックアート 著
デザインパターンを「使うことができる」ためには、デザインパターンの構造や仕組みを知っているだけでは充分ではありません。「どのような状況」で「どんなふう」に使うのが効果的なのかを充分に理解している必要があります。そこで本書では、パターンの使いどころと効果をわかりやすく示すことで、どのようなときにどんなふうにデザインパターンを使えばよいのかを理解できるようにしています。
第1部 オブジェクト指向とデザインパターン
第1章 オブジェクト指向とUML
1.1 オブジェクト指向の概要
1.2 クラスとインスタンス
1.3 継承と汎化
1.4 カプセル化
1.5 インターフェース
1.6 抽象クラス
1.7 多態性・多様性
1.8 集約
1.9 メッセージ送信
まとめ
理解度チェック
第2章 デザインパターンとは
2.1 パターンとは
2.2 デザインパターンの概要
理解度チェック
第2部 使用頻度が高いパターン
第3章 シングルトン(Singleton)
3.1 目的
3.2 適用動機
3.3 パターン未適用
3.4 パターン適用
3.5 メリット
3.6 発展
3.7 構造と構成要素
3.8 考慮事項
理解度チェック
第4章 ファクトリメソッド(Factory Method)
4.1 目的
4.2 適用動機
4.3 パターン未適用
4.4 パターン適用
4.5 メリット
4.6 発展 1
4.7 発展 2
4.8 構造と構成要素
4.9 その他
理解度チェック
第5章 アブストラクトファクトリ(Abstract Factory)
5.1 目的
5.2 適用動機
5.3 パターン未適用
5.4 パターン適用
5.5 メリット
5.6 構造と構成要素
5.7 考慮事項
理解度チェック
第6章 テンプレートメソッド(Template Method)
6.1 目的
6.2 適用動機
6.3 パターン未適用
6.4 パターン適用
6.5 メリット
6.6 拡張
6.7 構造と構成要素
6.8 考慮事項
6.9 その他
理解度チェック
第7章 イテレータ(Iterator)
7.1 目的
7.2 適用動機
7.3 パターン未適用
7.4 パターン適用
7.5 メリット
7.6 構造と構成要素
7.7 考慮事項
理解度チェック
第2部の復習問題
第3部 使用頻度が中程度のパターン
第8章 コンポジット(Composite)
8.1 目的
8.2 適用動機
8.3 パターン未適用
8.4 パターン適用
8.5 メリット
8.6 拡張
8.7 構造と構成要素
8.8 考慮事項
理解度チェック
第9章 アダプター(Adapter)
9.1 目的
9.2 適用動機
9.3 パターン未適用
9.4 パターン適用
9.5 メリット
9.6 構造と構成要素
9.7 考慮事項
理解度チェック
第10章 コマンド(Command)
10.1 目的
10.2 適用動機
10.3 パターン未適用
10.4 パターン適用
10.5 メリット
10.6 構造と構成要素
10.7 考慮事項
10.8 その他
理解度チェック
第11章 ファサード(Facade)
11.1 目的
11.2 適用動機
11.3 パターン未適用
11.4 パターン適用
11.5 メリット
11.6 構造と構成要素
11.7 考慮事項
理解度チェック
第12章 ステート(State)
12.1 目的
12.2 適用動機
12.3 パターン未適用
12.4 パターン適用
12.5 メリット
12.6 構造と構成要素
12.7 考慮事項
12.8 その他
理解度チェック
第13章 オブザーバー(Observer)
13.1 目的
13.2 適用動機
13.3 パターン未適用
13.4 パターン適用
13.5 メリット
13.6 発展
13.7 構造と構成要素
13.8 考慮事項
理解度チェック
第14章 ストラテジー(Strategy)
14.1 目的
14.2 適用動機
14.3 パターン未適用
14.4 パターン適用
14.5 メリット
14.6 構造と構成要素
14.7 考慮事項
14.8 その他
理解度チェック
第15章 プロキシー(Proxy)
15.1 目的
15.2 適用動機
15.3 パターン未適用
15.4 パターン適用
15.5 メリット
15.6 拡張
15.7 構造を構成要素
15.8 考慮事項
15.9 その他
理解度チェック
第3部の復習問題
第4部 使用頻度が低いパターン
第16章 ビルダー(Builder)
16.1 目的
16.2 適用動機
16.3 パターン未適用
16.4 パターン適用
16.5 メリット
16.6 構造と構成要素
16.7 考慮事項
16.8 その他
理解度チェック
第17章 ブリッジ(Bridge)
17.1 目的
17.2 適用動機
17.3 パターン未適用
17.4 パターン適用
17.5 メリット
17.6 構造と構成要素
17.7 考慮事項
理解度チェック
第18章 メディエータ(Mediator)
18.1 目的
18.2 適用動機
18.3 パターン未適用
18.4 パターン適用
18.5 メリット
18.6 拡張
18.7 構造と構成要素
18.8 その他
理解度チェック
第19章 チェーンオブレスポンシビリティ(Chain of Responsibility)
19.1 目的
19.2 適用動機
19.3 パターン未適用
19.4 パターン適用
19.5 メリット
19.6 構造と構成要素
19.7 考慮事項
19.8 その他
理解度チェック
第20章 デコレータ(Decorator)
20.1 目的
20.2 適用動機
20.3 パターン未適用
20.4 パターン適用
20.5 発展
20.6 メリット
20.7 拡張
20.8 構造と構成要素
20.9 考慮事項
20.10 その他
理解度チェック
第21章 ビジター(Visitor)
21.1 目的
21.2 適用動機
21.3 パターン未適用
21.4 パターン適用
21.5 メリット
21.6 拡張
21.7 構造と構成要素
21.8 考慮事項
21.9 その他
理解度チェック
第22章 プロトタイプ(Prototype)
22.1 目的
22.2 適用動機
22.3 パターン未適用
22.4 パターン適用
22.5 メリット
22.6 拡張
22.7 構造と構成要素
22.8 考慮事項
22.9 その他
理解度チェック
第23章 フライウェイト(Flyweight)
23.1 目的
23.2 適用動機
23.3 パターン未適用
23.4 パターン適用
23.5 メリット
23.6 拡張
23.7 構造と構成要素
理解度チェック
第24章 メメント(Memento)
24.1 目的
24.2 適用動機
24.3 パターン未適用
24.4 パターン適用
24.5 メリット
24.6 構造と構成要素
24.7 考慮事項
24.8 その他
理解度チェック
第25章 インタープリタ(Interpreter)
25.1 目的
25.2 適用動機
25.3 パターン未適用
25.4 パターン適用
25.5 メリット
25.6 拡張
25.7 構造と構成要素
25.8 考慮事項
25.9 その他
理解度チェック
第4部の復習問題
付録 A 理解度チェックの解答
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1刷 | 028 下から3行目 |
2刷 | 済 |
|
2009.06.15 | ||||||
1刷 | 045 下から3~2行目 |
2刷 | 済 |
|
2009.03.13 | ||||||
1刷 | 050 下から2行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 051 図2.4 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 058 箇条書きの2項目目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 061 9行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 065 リスト3.8の20~22行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 074 図4.2 |
2刷 | 済 |
|
2012.07.03 | ||||||
1刷 | 078 リスト4.6の2行上 |
2刷 | 済 |
|
2008.12.26 | ||||||
1刷 | 079 リスト4.6の後ろ |
2刷 | 済 |
|
2008.12.26 | ||||||
1刷 | 082 リスト番号 |
2刷 | 済 |
|
2012.07.03 | ||||||
1刷 | 083 リスト番号 |
2刷 | 済 |
|
2012.07.03 | ||||||
1刷 | 084 リスト番号 |
2刷 | 済 |
|
2012.07.03 | ||||||
1刷 | 094 下から3行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 095 リスト5.6の3~5行目 |
2刷 | 済 |
|
2008.12.24 | ||||||
1刷 | 096 下から5行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 097 図5.1のDecorationクラス、BirthdayDecorationクラス、XmasDecorationクラスのメソッド |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 098 図5.2 |
未 | 済 |
|
2012.07.05 | ||||||
1刷 | 105 リスト6.4の下から3行目 |
2刷 | 済 |
|
2008.12.24 | ||||||
1刷 | 107、108 P107「リスト6.8」P108「リスト6.9」「リスト6.10」それぞれの下から2行目 |
2刷 | 済 |
|
2008.12.24 | ||||||
1刷 | 109 本文1行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 117 箇条書き1項目目と2項目目、リスト7.2の5行目と6行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 121 リスト7.7の5行目と6行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 121 リスト7.7の下から3行目 |
2刷 | 済 |
|
2010.01.05 | ||||||
1刷 | 123 リスト7.8の3行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 145 7行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 156、160 P.156の最初のコードの中ほど、P.160のコードの後半 |
2刷 | 済 |
|
2009.03.11 | ||||||
1刷 | 161 リスト10.4の最後に追加 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 163 図10.3のMoveCommandクラスとLineCommandクラスのメソッド(2か所) |
2刷 | 済 |
|
2012.07.04 | ||||||
1刷 | 172、174 P.172の図11.1、P.174の図11.2 |
2刷 | 済 |
|
2012.07.04 | ||||||
1刷 | 178 最下行 |
2刷 | 済 |
|
2008.12.25 | ||||||
1刷 | 178 箇条書き1項目目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 179 リスト12.2の【State.h】 |
2刷 | 済 |
|
2008.12.25 | ||||||
1刷 | 186 図12.3 右下のクラス名 |
未 | 済 |
|
2012.07.27 | ||||||
1刷 | 197 図13.8 |
未 | 済 |
|
2012.11.13 | ||||||
1刷 | 216 表15.1のフィールド名 |
2刷 | 済 |
|
2012.07.04 | ||||||
1刷 | 216 表15.2のフィールド名 |
2刷 | 済 |
|
2012.07.04 | ||||||
1刷 | 220 図15.2 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 228 図15.4 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 239 リスト16.8の9行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 240 図16.1のHomeBuilderインタフェース、ModernHomeBuilderクラス、EuropeanHomeBuilderクラス、JapaneseHomeBuilderクラスのメソッド名 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 245 リスト17.3 下から3行目 |
未 | 未 |
|
2015.07.24 | ||||||
1刷 | 257 箇条書き1項目目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 265 図18.4 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 272 図19.1 |
2刷 | 済 |
|
2012.07.04 | ||||||
1刷 | 275 図19.2 |
未 | 済 |
|
2011.10.27 | ||||||
1刷 | 276 図19.3のHandlerクラス |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 290 7行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 291 6行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 291 リスト20.9の5行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 291 リスト20.9【Decorator.cpp】 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 293 図20.8の一番下のコメント |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 293 図20.8 |
未 | 済 |
|
2011.10.27 | ||||||
1刷 | 299 リスト21.1の5~6行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 299 リスト21.1の下から7~3行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 300 リスト21.2の5行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 300 リスト21.3の5行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 300 リスト21.3の下から4行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 301 1~8行目(リスト21.3) |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 304 コードの下1行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 305 図21.2 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 306 図21.3のListVisitorクラスのメソッド |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 318 「22.6 拡張」の5~6行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 320 リスト22.8の13~16行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 330 リスト23.7の6行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 330 リスト23.7【Flyweight.cpp】の1行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 342 リスト24.1の下から14行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 343 (リスト24.1)12行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 343 (リスト24.1)16行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 346 【Memento.cpp】の8行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 347 2行目~(リスト24.3) |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 348 リスト24.4の下から2~1行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 350 図24.4 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 350 図24.4、MementoクラスとCaretakerクラスの間 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 354 25.2の2行目~5行目 |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 356 (リスト25.2)最後の3つのコンストラクタ呼び出しの引数 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 362 リスト25.9【Interpreter.cpp】の1~8行目 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 363 図25.3 |
未 | 済 |
|
2012.08.28 | ||||||
1刷 | 363 図25.3 下段のクラス名 |
2刷 | 済 |
|
2012.07.04 | ||||||
1刷 | 364 3つ目の小見出し |
2刷 | 済 |
|
2011.10.27 | ||||||
1刷 | 388 第19章 3.の【答】 |
2刷 | 済 |
|
2011.10.27 | ||||||
2刷 | 156 10~11行目 |
未 | 済 |
|
2012.07.05 |
真(まこと) さん
2013-01-11
有名なGoFのデザインパターンについて解説した本です。オブジェクト指向系の技術書はJavaなどのサンプルを用いることが多い中、C++のサンプルで解説してくれている貴重な本だと思います。(やはり普段使っている言語の方が読みやすいです。)C++とオブジェクト指向についてある程度知識がある人向けです。UML図も使用されていますが、UMLはわからなくても、サンプルソースと解説で、各クラスの関係性がわかるので問題ないです。デザインパターン適用前と適用後のサンプルソースがあり、比較することで適用するメリットがとてもわ
Yoshi さん
2010-10-10
4.0
knoota さん
2017-07-09
GOF本を噛み砕き、サンプルコードつきで解説している本。GOF本では難易度が高いと感じたため、こちらを参考にした。C++が読めればデザインパターンの良い入門書と感じた。