contents memorandum はてな

目次とメモを置いとく場

『オブジェクト指向における再利用のためのデザインパターン』(Erich Gammaほか[著] 本位田真一, 吉田和樹[監訳] 清水洋子ほか[訳] ソフトバンクパブリッシング 1999//1994)

原題:Design Patterns: Elements of Reusable Object-Oriented Software (1994)
著者:Erich Gamma
著者:Richard Helm
著者:Ralph Johnson
著者:John Vlissides
監修:本位田 真一[ほんいでん・しんいち](1953-) 
監修:吉田 和樹[よしだ・かずき](1964-) 
訳者:松本 一教[まつもと・かずのり](1986-) 
訳者:清水 洋子[しみず・ようこ](1989-) 
訳者:山本 純一[やまもと・じゅんいち](1990-) 
訳者:入内島 裕子[いりうちじま・ひろこ](1991-) 
訳者:早瀬 健夫[はやせ・たけお](1992-) 
訳者:安東 孝信[あんどう・たかのぶ](1994-) 
CD-ROM制作/Javaサンプルコード作成:細谷 竜一[ほそや・りゅういち](1998-)
カバーデザイン:早川いくを[はやかわ・いくお] 作家。(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]