オブジェクト指向のこころ
デザインパターンとともに学ぶ

オブジェクト指向のこころ

原書名 DESIGN PATTERNS EXPLAINED SECOND EDITION
著者名 村上 雅章
発行元 丸善出版
発行年月日 2005年09月
判型 A5変
ページ数 404ページ
ISBN 978-4-621-06604-1
Cコード 3004
NDCコード 007
ジャンル 電気・電子・情報工学 >  情報・コンピュータ >  言語・プログラミング

内容紹介

オブジェクト指向パラダイムを有効にするためのデザインパターンの中から、重要度の高いものを厳選し解説。要求における流動的要素や、要求の変化という観点から、さまざまな事例について丁寧な考察を行うことによって、デザインパターンそのものを導き出すというユニークなアプローチを採っている。オブジェクト指向パラダイムのメリットを120%引き出したいと考えている方にお薦めの一冊。

目次

まえがき
 オブジェクト指向からパターンへ、そして真のオブジェクト指向へ
 人工知能からパターンへ、そして真のオブジェクト指向へ
 本書で使用している表記について
 フィードバック
 第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 練習問題
第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 練習問題
第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 練習問題
第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 練習問題
第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 練習問題
第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 練習問題
第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 システム規模に見合ったアプローチ
第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 個人的なお薦め書籍

定価:4,180円
(本体3,800円+税10%)
在庫:在庫あり