原題:Design Patterns: Elements of Reusable Object-Oriented Software (1994)
著者:Erich Gamma
著者:Richard Helm
著者:Ralph Johnson
著者:John Vlissides
監修:本位田 真一[ほんいでん・しんいち](1953-)
監修:吉田 和樹[よしだ・かずき](1964-)
訳者:松本 一教[まつもと・かずのり]
訳者:清水 洋子[しみず・ようこ]
訳者:山本 純一[やまもと・じゅんいち]
訳者:入内島 裕子[いりうちじま・ひろこ]
訳者:早瀬 健夫[はやせ・たけお]
訳者:安東 孝信[あんどう・たかのぶ]
CD-ROM制作/Javaサンプルコード作成:細谷 竜一[ほそや・りゅういち]
カバーデザイン:早川いくを[はやかわ・いくお] 作家。(ikuo@mvj.biglobe.ne.jp)
NDC:007.64 情報科学
オブジェクト指向における再利用のためのデザインパターン(改訂版) | SBクリエイティブ
【メモランダム】
・冒頭部はノンブルがローマ数字で表記されており、本体部のノンブルは算用数字で表されている。ここまではよくある。
しかし、本体部は冒頭部のカウントを引き継いる。つまり、この2つは連続している(x→xi→?→13→)。かなり珍しい数え方だ。
【目次】
コロフォン [ii]
監訳者序文(1999年10月 本位田 真一・吉田 和樹) [iii]
日本語版に向けて(1995年8月 Ralph Johnson) [iv]
序文(1994年8月 Erich Gamma Richard Helm Ralph Johnson John Vlissides) [v-vi]
まえがき(Grady Booch Chief Scientist, Rational Software Corporation) [vii]
読者へのガイダンス [viii]
目次 [ix-xi]
第1章 概論
1.1 デザインパターンとは 014
1.2 Smalltalk MVCにおけるデザインパターン 016
1.3 デザインパターンの記述 018
パターン名と分類
目的
別名
動機
適用可能性
構造
構成要素
協調関係
結果
実装
サンプルコード
使用例
関連するパターン
1.4 デザインパターンのカタログ 019
1.5 カタログの構成 022
1.6 デザインパターンで設計問題を解く 024
適切なオブジェクトを見つける
オブジェクトの粒度を決める
オブジェクトのインタフェースを規定する
オブジェクトの実装を規定する
クラス継承とインタフェース継承
インタフェースに対してプログラミングする
再利用のためのメカニズム
継承とコンポジション
委譲
継承とパラメータ化した型
実行時とコンパイル斎の構造の関係
変更に対する設計
アプリケーションプログラム
ツールキット
フレームワーク
1.7 どのようにデザインパターンを選択するか 040
1.8 どのようにデザインパターンを使うか 041
第2章 事例:ドキュメントエディタの設計
2.1 設計問題 043
2.2 ドキュメント構造 045
再帰構成
Compositeパターン
2.3 整形 050
整形アルゴリズムのカプセル化
CompositorクラスとCompositionクラス
Strategyパターン
2.4 ユーザインタフェースの装飾 053
透明な囲い
Monoglyph
Decoratorパターン
2.5 さまざまな look-and-feel規格をサポートする 056
オブジェクトの生成を抽象化する
FactoryクラスとProductクラス
Abstract Factoryパターン
2.6 さまざまなウィンドウシステムをサポートする 061
Abstract Factoryパターンを利用できるか
実装依存をカプセル化する
WindowクラスとWindowImpクラス
WindowクラスをWindowImpクラスによって構成する
Bridgeパターン
2.7 ユーザのオペレーション 068
要求をカプセル化する
Commandクラスとそのサブクラス
取り消しの可能性
コマンド履歴
Commandパターン
2.8 スペルチェックとハイフン挿入 073
散在している情報にアクセスする
アクセスと走査方法をカプセル化する
Iteratorクラスとそのサブクラス
Iteratorパターン
走査する過程とそこでのアクション
解析をカプセル化する
Visitorクラスとそのサブクラス
Visitorパターン
2.9 まとめ 085
デザインパターン・カタログ
第3章 生成に関するパターン
Abstract Factory パターン 095
Builder パターン 105
Factory Method パターン 115
Prototype パターン 127
Singleton パターン 137
生成に関するパターンのまとめ 145
第4章 構造に関するパターン
Adapter パターン 149
Bridge パターン 163
Composite パターン 175
Decorator パターン 187
Facade パターン 197
Flyweight パターン 207
Proxy パターン 221
構造に関するパターンのまとめ 233
第5章 振る舞いに関するパターン
Chain of Responsibility パターン 237
Command パターン 249
Interpreter パターン 261
Iterator パターン 275
Mediator パターン 291
Memento パターン 303
Observer パターン 313
State パターン 325
Strategy パターン 335
Template Method パターン 347
Visitor パターン 353
振る舞いに関するパターンのまとめ 369
第6章 終わりに
6.1 デザインパターンに何を期待するか 375
共通の設計用語
文書化と習得の促進
既存手法への追加
リファクタリングのターゲット
6.2 経緯 378
6.3 パターンのコミュニティ 379
Alexander[Christopher Alexander]のパターン言語
ソフトウェアのパターン
6.4 誘い 381
6.5 終わりに 382
付録A 用語集 383
付録B 表記法のガイドライン 389
B.1 クラスダイアグラム 389
B.2 オブジェクトダイアグラム 390
B.3 インタラクションダイアグラム 392
付録C 基底クラス 393
C.1 Listクラス 393
コンストラクション、デストラクション、初期化、および代入
アクセス
追加
削除
スタックインタフェース
C.2 Iteratorクラス 396
C.3 ListIteratorクラス 397
C.4 Pointクラス 397
C.5 Rectクラス 398
参考文献 [399-404]
索引 [405-414]
著者、監訳者、訳者紹介 [415]
奥付 [416]
CD-ROM について [417]