どこに需要があるのかわかりませんが、 オブジェクト指向の名著と言われてる(誤訳がひどい、わかりにくいとの評価もあります。) 『オブジェクト指向のこころ』 の目次情報、インデックス情報を手打ちしました。しんどかった。せっかく作ったので共有します。最初の一冊には難しいかな。
目次 | 5 |
まえがき | 17 |
オブジェクト指向からパターンへ、そして真のオブジェクト指向へ | 19 |
人工知能からパターンへ、そして真のオブジェクト指向へ | 25 |
本書で使用している表記について | 27 |
フィードバック | 30 |
第2版で変わった部分 | 31 |
謝辞 | 31 |
第I部 オフジェクト指向ソフトウェア開発入門 | 1 |
第1章 オブジェクト指向パラダイム | 3 |
概要 | 3 |
オブジェクト指向パラダイム以前:機能分解 | 3 |
要求における問題 | 5 |
変化に対応する:機能分解を用いた場合 | 7 |
要求の変更に取り組む | 9 |
オブジェクト指向パラダイム | 12 |
オブジェクト指向プログラミングの実際 | 19 |
オブジェクトの特殊なメソッド | 22 |
サマリ | 23 |
練習問題 | 23 |
第2章 UML―統一モデリング言語 | 27 |
概要 | 27 |
UMLとは何か? | 27 |
UMLを使う理由 | 27 |
クラス図 | 29 |
相互作用図 | 36 |
サマリ | 38 |
練習問題 | 39 |
第II部 従来のオブジェクト指向設計における限界 | 41 |
第3章 柔軟なコードを必要とする問題 | 43 |
概要 | 43 |
CAD/CAMシステムから情報を抽出する | 43 |
ボキャブラリを理解する | 44 |
問題を表現する | 46 |
本質的な問題とアプローチ | 48 |
サマリ | 51 |
練習問題 | 51 |
第4章 標準的なオブジェクト指向による解決策 | 53 |
概要 | 53 |
特殊化したケースを考慮して解決する | 53 |
サマリ | 62 |
練習問題 | 62 |
第III部 デザインパターン | 65 |
第5章 デザインパターンの紹介 | 69 |
概要 | 69 |
デザインパターンは建築学と文化人類学から生まれた | 70 |
建築の設計パターンからソフトェアのデザインパターンへの移行 | 74 |
デザインパターンを学習する理由は? | 75 |
デザインパターンを学習するその他の利点 | 79 |
サマリ | 80 |
練習問題 | 81 |
第6章 Facadeパターン | 83 |
概要 | 83 |
Facadeパターンの紹介 | 83 |
Facadeパターンの学習 | 84 |
フィールドノート:Facadeパターン | 87 |
CAD/CAMの問題とFacadeパターンの関係 | 88 |
サマリ | 89 |
練習問題 | 89 |
第7章 Adapterパターン | 91 |
概要 | 91 |
Adapterパターンの紹介 | 91 |
Adapterパターンの学習 | 92 |
フィールドノート:Adapterパターン | 96 |
CAD/CAMの問題とAdapterパターンの関係 | 100 |
サマリ | 100 |
練習問題 | 100 |
第8章 視野を広げる | 103 |
概要 | 103 |
オブジェクト:従来からの考え方と新たな考え方 | 104 |
カプセル化:従来からの考え方と新たな考え方 | 106 |
流動的要素を見つけ出し、それをカプセル化する | 109 |
共通性/可変性分析と抽象クラス | 113 |
アジャイル開発における品質 | 115 |
サマリ | 119 |
練習問題 | 120 |
第9章 Strategyパターン | 123 |
概要 | 123 |
新たな要求を取り扱うための方法 | 123 |
国際e-コマースシステムの事例:最初の要求 | 126 |
新たな要求の取り扱い | 126 |
Strategyパターン | 136 |
フィールドノート:Strategyパターンの使用 | 138 |
サマリ | 140 |
練習問題 | 140 |
第10章 Bridgeパターン | 143 |
概要 | 143 |
Bridgeパターンの紹介 | 143 |
例を用いたBridgeパターンの学習 | 144 |
デザインパターンの使用 | 155 |
Bridgeパターンの学習:パターンを導き出す | 156 |
概念的観点から見たBridgeパターン | 164 |
フィールドノート:Bridgeパターンの使用 | 165 |
サマリ | 169 |
練習問題 | 172 |
第11章 Abstract Factoryパターン | 173 |
概要 | 173 |
Abstract Factoryパターンの紹介 | 173 |
例を用いたAbstract Factoryパターンの学習 | 173 |
Abstract Factoryパターンの学習:その実装 | 181 |
フィールドノート:Abstract Factoryパターン | 185 |
Abstract FactoryパターンとCAD/CAM問題の関係 | 188 |
サマリ | 188 |
練習問題 | 189 |
第IV部 すべてをまとめる:パターンを使って考える | 191 |
第12章 エキスパートはどのように設計するのか? | 193 |
概要 | 193 |
違いを付加していくことによる構築 | 193 |
サマリ | 201 |
練習問題 | 201 |
第13章 CAD/CAM問題をパターンによって解決す | 203 |
概要 | 203 |
CAD/CAM問題のおさらい | 203 |
パターンで考える | 204 |
サマリ | 219 |
練習問題 | 220 |
第V部 新たな設計パラダイムに向けて | 221 |
第14章 デザインパターンの原則と戦略 | 223 |
概要 | 223 |
開放/閉鎖原則 | 224 |
コンテキストからの設計原則 | 224 |
流動的要素のカプセル化原則 | 229 |
抽象クラスVS.インタフェース | 230 |
健全な猜疑心 | 231 |
サマリ | 232 |
練習問題 | 233 |
第15章 共通性/可能性分析 | 235 |
概要 | 235 |
共通性/可変性分析とアプリケーションの設計 | 235 |
共通性/可変性分析を用いてCAD/CAMの問題を解決する | 236 |
サマリ | 241 |
練習問題 | 242 |
第16章 分析マトリクス | 234 |
概要 | 243 |
現実世界にて:流動的要素 | 243 |
国際e-コマースシステムの事例:流動的要素の取り扱い | 244 |
フィールドノート | 252 |
サマリ | 255 |
練習問題 | 255 |
第VI部 パターンの持つその他の価値 | 257 |
第17章 Decoratorパターン | 259 |
概要 | 259 |
もう少し詳細に | 259 |
Decoratorパターン | 261 |
Decoratorパターンを事例に適用する | 262 |
もう一つの例:入出力 | 265 |
フィールドノート:Decoratorパターンの使用 | 267 |
Decoratorパターンの本質 | 268 |
サマリ | 270 |
練習問題 | 270 |
第18章 Observerパターン | 271 |
概要 | 271 |
パターンの分類 | 271 |
国際e-コマースシステムの事例に対する追加要求 | 273 |
Observerパターン | 274 |
事例に対するObserverパターンの適用 | 274 |
フィールドノート:Observerパターンの使用 | 279 |
サマリ | 281 |
練習問題 | 282 |
第19章 Template Methodパターン | 283 |
概要 | 283 |
国際e-コマースの事例における追加要求 | 283 |
Template Methodパターン | 284 |
Template Methodを国際e-コマースシステムの事例に適用する | 284 |
Template Methodパターンを用いて冗長性をなくす | 285 |
フィールドノート:Template Methodパターンの使用 | 290 |
サマリ | 291 |
練習問題 | 293 |
第VII部 ファクトリ | 295 |
第20章 生成に関するパターンから得られる教訓 | 297 |
概要 | 297 |
ファクトリ | 297 |
続・コンテキストを考慮する時の規則 | 299 |
指針に従ったファクトリ | 300 |
変化のベクトルを制限する | 302 |
別な視点から | 302 |
ファクトリのさまざまな役割 | 302 |
フィールドノート | 303 |
サマリ | 304 |
練習問題 | 304 |
第21章 SingletonパターンとDouble-Checked Lockingパターン | 307 |
概要 | 307 |
Singletonパターンの紹介 | 308 |
事例に対するSingletonパターンの適用 | 308 |
兄弟分:Double-Checked Lockingパターン | 312 |
熟考 | 314 |
フィールドノート:SingletonパターンとDouble-Checked Lockingパターンの使用 | 315 |
サマリ | 316 |
練習問題 | 316 |
第22章 Object Poolパターン | 317 |
概要 | 317 |
オブジェクト群の管理を必要とする問題 | 318 |
Object Poolパターン | 325 |
考察:ファクトリの守備範囲は実体化だけではない | 325 |
サマリ | 328 |
練習問題 | 328 |
第23章 Factory Methodパターン | 329 |
概要 | 329 |
事例に対する新たな要求 | 329 |
Factory Methodパターン | 330 |
Factory Methodパターンとオブジェクト指向言語 | 331 |
フィールドノート:Factory Methodパターン | 331 |
サマリ | 332 |
練習問題 | 334 |
第24章 ファクトリのサマリ | 335 |
概要 | 335 |
ソフトウェア開発プロセスの手順 | 335 |
ファクトリとエクストリームプログラミングのプラクティス間にある類似点 | 336 |
システム規模に見合ったアプローチ | 337 |
第VIII部 まとめ、そして今後 | 339 |
第25章 デザインパターンのおさらい:総括と今後 | 341 |
概要 | 341 |
オブジェクト指向原則のサマリ | 341 |
デザインパターンによる実装のカプセル化方法 | 342 |
共通性/可変性分析とデザインパターン | 342 |
問題領域を責務に分解する | 343 |
パターンおよびコンテキストに基づく設計 | 344 |
パターン内の関連 | 344 |
デザインパターンとアジャイル開発方法論のプラクティス | 346 |
フィールドノート | 346 |
サマリ | 347 |
練習問題 | 347 |
第26章 参考文献 | 349 |
本書のサポートウェブサイト(英語) | 349 |
参考文献 | 350 |
Javaプログラマに対するお薦め書籍 | 352 |
C+プログラマに対するお薦め書籍 | 353 |
COBOLプログラマに対するお薦め書籍 | 353 |
エクストリームプログラミングに対するお薦め書籍 | 354 |
プログラミング一般に関するお薦め書籍 | 354 |
個人的なお薦め書籍 | 355 |
索引 | 359 |