どこに需要があるのかわかりませんが、 オブジェクト指向の名著と言われてる(誤訳がひどい、わかりにくいとの評価もあります。) 『オブジェクト指向のこころ』 の目次情報、インデックス情報を手打ちしました。しんどかった。せっかく作ったので共有します。最初の一冊には難しいかな。
| 目次 | 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 |