オブジェクト指向のこころ(Alan Shalloway, James R. Trott)
書籍情報
- 著者:Alan Shalloway(著), James R. Trott(著), 村上雅章(訳)
- 発行日:2005-09-20
- ISBN:9784621066041
書籍目次
- まえがき
- オブジェクト指向からパターンへ、そして真のオブジェクト指向へ
- 人工知能からパターンへ、そして真のオブジェクト指向へ
- 本書で使用している表記について
- フィードバック
- 第2版で変わった部分
- 謝辞
- 第I部 オフジェクト指向ソフトウェア開発入門
- 第1章 オブジェクト指向パラダイム
- 1.1 概要
- 1.2 オブジェクト指向パラダイム以前:機能分解
- 1.3 要求における問題
- 1.4 変化に対応する:機能分解を用いた場合
- 1.5 要求の変更に取り組む
- 1.6 オブジェクト指向パラダイム
- 1.7 オブジェクト指向プログラミングの実際
- 1.8 オブジェクトの特殊なメソッド
- 1.9 サマリ
- 1.10 練習問題
- 第2章 UML ――統一モデリング言語
- 2.1 概要
- 2.2 UMLとは何か?
- 2.3 UMLを使う理由
- 2.4 クラス図
- 2.5 相互作用図
- 2.6 サマリ
- 2.7 練習問題
- 第1章 オブジェクト指向パラダイム
- 第II部 従来のオブジェクト指向設計における限界
- 第3章 柔軟なコードを必要とする問題
- 3.1 概要
- 3.2 CAD/CAMシステムから情報を抽出する
- 3.3 ボキャブラリを理解する
- 3.4 問題を表現する
- 3.5 本質的な問題とアプローチ
- 3.6 サマリ
- 3.7 練習問題
- 第4章 標準的なオブジェクト指向による解決策
- 4.1 概要
- 4.2 特殊化したケースを考慮して解決する
- 4.3 サマリ
- 4.4 練習問題
- 第3章 柔軟なコードを必要とする問題
- 第III部 デザインパターン
- 第5章 デザインパターンの紹介
- 5.1 概要
- 5.2 デザインパターンは建築学と文化人類学から生まれた
- 5.3 建築の設計パターンからソフトェアのデザインパターンへの移行
- 5.3 デザインパターンを学習する理由は?
- 5.4 デザインパターンを学習するその他の利点
- 5.5 サマリ
- 5.6 練習問題
- 第6章 Facadeパターン
- 6.1 概要
- 6.2 Facadeパターンの紹介
- 6.3 Facadeパターンの学習
- 6.4 フィールドノート:Facadeパターン
- 6.5 CAD/CAMの問題とFacadeパターンの関係
- 6.6 サマリ
- 6.7 練習問題
- 第7章 Adapterパターン
- 7.1 概要
- 7.2 Adapterパターンの紹介
- 7.3 Adapterパターンの学習
- 7.4 フィールドノート:Adapterパターン
- 7.5 CAD/CAMの問題とAdapterパターンの関係
- 7.6 サマリ
- 7.7 練習問題
- 第8章 視野を広げる
- 8.1 概要
- 8.2 オブジェクト:従来からの考え方と新たな考え方
- 8.3 カプセル化:従来からの考え方と新たな考え方
- 8.4 流動的要素を見つけ出し、それをカプセル化する
- 8.5 共通性/可変性分析と抽象クラス
- 8.6 アジャイル開発における品質
- 8.7 サマリ
- 8.8 練習問題
- 第9章 Strategyパターン
- 9.1 概要
- 9.2 新たな要求を取り扱うための方法
- 9.3 国際e-コマースシステムの事例:最初の要求
- 9.4 新たな要求の取り扱い
- 9.5 Strategyパターン
- 9.6 フィールドノート:Strategyパターンの使用
- 9.7 サマリ
- 9.8 練習問題
- 第10章 Bridgeパターン
- 10.1 概要
- 10.2 Bridgeパターンの紹介
- 10.3 例を用いたBridgeパターンの学習
- 10.4 デザインパターンの使用
- 10.5 Bridgeパターンの学習:パターンを導き出す
- 10.6 概念的観点から見たBridgeパターン
- 10.7 フィールドノート:Bridgeパターンの使用
- 10.8 サマリ
- 10.9 練習問題
- 第11章 Abstract Factoryパターン
- 11.1 概要
- 11.2 Abstract Factoryパターンの紹介
- 11.3 例を用いたAbstract Factoryパターンの学習
- 11.4 Abstract Factoryパターンの学習:その実装
- 11.5 フィールドノート:Abstract Factoryパターン
- 11.6 Abstract FactoryパターンとCAD/CAM問題の関係
- 11.7 サマリ
- 11.8 練習問題
- 第5章 デザインパターンの紹介
- 第IV部 すべてをまとめる:パターンを使って考える
- 第12章 エキスパートはどのように設計するのか?
- 12.1 概要
- 12.2 違いを付加していくことによる構築
- 12.3 サマリ
- 12.4 練習問題
- 第13章 CAD/CAM問題をパターンによって解決す
- 13.1 概要
- 13.2 CAD/CAM問題のおさらい
- 13.3 パターンで考える
- 13.4 サマリ
- 13.5 練習問題
- 第12章 エキスパートはどのように設計するのか?
- 第V部 新たな設計パラダイムに向けて
- 第14章 デザインパターンの原則と戦略
- 14.1 概要
- 14.2 開放/閉鎖原則
- 14.3 コンテキストからの設計原則
- 14.4 流動的要素のカプセル化原則
- 14.5 抽象クラスVS.インタフェース
- 14.6 健全な猜疑心
- 14.7 サマリ
- 14.8 練習問題
- 第15章 共通性/可能性分析
- 15.1 概要
- 15.2 共通性/可変性分析とアプリケーションの設計
- 15.3 共通性/可変性分析を用いてCAD/CAMの問題を解決する
- 15.4 サマリ
- 15.5 練習問題
- 第16章 分析マトリクス
- 16.1 概要
- 16.2 現実世界にて:流動的要素
- 16.3 国際e-コマースシステムの事例:流動的要素の取り扱い
- 16.4 フィールドノート
- 16.5 サマリ
- 16.6 練習問題
- 第14章 デザインパターンの原則と戦略
- 第VI部 パターンの持つその他の価値
- 第17章 Decoratorパターン
- 17.1 概要
- 17.2 もう少し詳細に
- 17.3 Decoratorパターン
- 17.4 Decoratorパターンを事例に適用する
- 17.5 もう一つの例:入出力
- 17.6 フィールドノート:Decoratorパターンの使用
- 17.7 Decoratorパターンの本質
- 17.8 サマリ
- 17.9 練習問題
- 第18章 Observerパターン
- 18.1 概要
- 18.2 パターンの分類
- 18.3 国際e-コマースシステムの事例に対する追加要求
- 18.4 Observerパターン
- 18.5 事例に対するObserverパターンの適用
- 18.6 フィールドノート:Observerパターンの使用
- 18.7 サマリ
- 18.8 練習問題
- 第19章 Template Methodパターン
- 19.1 概要
- 19.2 国際e-コマースの事例における追加要求
- 19.3 Template Methodパターン
- 19.4 Template Methodを国際e-コマースシステムの事例に適用する
- 19.5 Template Methodパターンを用いて冗長性をなくす
- 19.6 フィールドノート:Template Methodパターンの使用
- 19.7 サマリ
- 19.8 練習問題
- 第17章 Decoratorパターン
- 第VII部 ファクトリ
- 第20章 生成に関するパターンから得られる教訓
- 20.1 概要
- 20.2 ファクトリ
- 20.3 続・コンテキストを考慮する時の規則
- 20.4 指針に従ったファクトリ
- 20.5 変化のベクトルを制限する
- 20.6 別な視点から
- 20.7 ファクトリのさまざまな役割
- 20.8 フィールドノート
- 20.9 サマリ
- 20.10 練習問題
- 第21章 SingletonパターンとDouble-Checked Lockingパターン
- 21.1 概要
- 21.2 Singletonパターンの紹介
- 21.3 事例に対するSingletonパターンの適用
- 21.4 兄弟分:Double-Checked Lockingパターン
- 21.5 熟考
- 21.6 フィールドノート:SingletonパターンとDouble-Checked Lockingパターンの使用
- 21.7 サマリ
- 21.8 練習問題
- 第22章 Object Poolパターン
- 22.1 概要
- 22.2 オブジェクト群の管理を必要とする問題
- 22.3 Object Poolパターン
- 22.4 考察:ファクトリの守備範囲は実体化だけではない
- 22.5 サマリ
- 22.6 練習問題
- 第23章 Factory Methodパターン
- 23.1 概要
- 23.2 事例に対する新たな要求
- 23.3 Factory Methodパターン
- 23.4 Factory Methodパターンとオブジェクト指向言語
- 23.5 フィールドノート:Factory Methodパターン
- 23.6 サマリ
- 23.7 練習問題
- 第24章 ファクトリのサマリ
- 24.1 概要
- 24.2 ソフトウェア開発プロセスの手順
- 24.3 ファクトリとエクストリームプログラミングのプラクティス間にある類似点
- 24.4 システム規模に見合ったアプローチ
- 第20章 生成に関するパターンから得られる教訓
- 第VIII部 まとめ、そして今後
- 第25章 デザインパターンのおさらい:総括と今後
- 25.1 概要
- 25.2 オブジェクト指向原則のサマリ
- 25.3 デザインパターンによる実装のカプセル化方法
- 25.4 共通性/可変性分析とデザインパターン
- 25.5 問題領域を責務に分解する
- 25.6 パターンおよびコンテキストに基づく設計
- 25.7 パターン内の関連
- 25.8 デザインパターンとアジャイル開発方法論のプラクティス
- 25.9 フィールドノート
- 25.10 サマリ
- 25.11 練習問題
- 第26章 参考文献
- 26.1 本書のサポートウェブサイト(英語)
- 26.2 参考文献
- 26.3 Javaプログラマに対するお薦め書籍
- 26.4 C+プログラマに対するお薦め書籍
- 26.5 COBOLプログラマに対するお薦め書籍
- 26.6 エクストリームプログラミングに対するお薦め書籍
- 26.7 プログラミング一般に関するお薦め書籍
- 26.8 個人的なお薦め書籍
- 第25章 デザインパターンのおさらい:総括と今後
- 索引