Java開発者のためのアンチデザインパターン
〜失敗を回避する秘訣
〜失敗を回避する秘訣
2002年6月7日紙版発売
安藤利和 著
B5変形判/256ページ
定価2,618円(本体2,380円+税10%)
ISBN 4-7741-1490-1
ただいま弊社在庫はございません。
書籍の概要
この本の概要
デザインパターンは使い方を間違えると,ソフトウェア開発の障害になってしまう恐れがあります。本書ではデザインパターンの危険な一面に注目し,デザインパターンを正しく使うためのノウハウについて解説します。
こんな方におすすめ
- オブジェクト指向の理解を深めたい方
- デザインパターンの理解を深めたい方
目次
第0章 デザインパターンのパラドックス〜デザインパターンの弱点とは?
- 0-1 デザインパターンを使ったプロジェクトは失敗する?
- 0-1-1 デザインパターンの暗黒面
- 0-1-2 デザインパターンの弱点(1)
- 0-1-3 デザインパターンの弱点(2)
- 0-1-4 デザインパターンの弱点(3)
- 0-1-5 デザインパターンの弱点(4)
- 0-1-6 そして誰も使わなくなったデザインパターン
第1章 非オブジェクト指向に慣れた人がやりそうなこと
- 1-1 デザインパターンが真価を発揮するために
- 1-1-1 デザインパターンで大切なこと
- 1-2 初心者が最初にやりそうなこと〜コピー&ペースト攻撃
- 1-2-1 コピー&ペーストは簡単だけど…
- 1-2-2 コピー&ペーストによる拡張の欠点
- 1-2-3 ソースコードの汚染は少なめに
- 1-3 初心者が次にやりそうなこと〜同じ処理がいっぱい
- 1-3-1 同じ処理を繰り返すのは簡単だけど…
- 1-3-2 同じ処理を繰り返すことの欠点
- 1-4 中級者が最初にやりそうなこと〜if 文がいっぱい
- 1-4-1 if文の多用と汚染個所の増大
- 1-4-2 継承ってなんだろう
- 1-4-3 interfaceを使って見づらさを解消
- 1-4-4 abstract classでクラスから分離
第2章 初心者が次にやりそうなこと〜お願いだから共有化しましょう
- 2-1 クラスの再利用とpackage化
- 2-1-1 クラスの再利用における問題点
- 2-1-2 package宣言の方法
- 2-2 クラス名が重複しているときはどうする?
- 2-1 クラス名の重複を解決する2つの方法
第3章 オブジェクトをnewする〜オブジェクトとはなんだ? 全部「static」ではダメなのか?
- 3-1 「オブジェクト指向」と「オブジェクト」
- 3-1-1 オブジェクトはデータと関数の集まり
- 3-1-2 物事を抽象化して考える
- 3-2 オブジェクト化と例外
- 3-2-1 オブジェクトが生成されるタイミング
- 3-2-2 static宣言でオブジェクト化の例外
- 3-2-3 staticの欠点
- 3-3 staticを使用したパターン
- 3-3-1 Singletonパターン
- 3-4 アクセス制限修飾子
- 3-4-1 3つのアクセス制御修飾子とその役割
- 3-4-2 オブジェクト指向と情報の隠匿
- 3-5 アクセス制限:finalの3種類
- 3-5-1 finalでアクセスを制限する
- 3-6 継承を行う時の注意点(super)
- 3-6-1 継承とコンストラクタ
- 3-7 そしてSingletonを振り返ってみる
- 3-7-1 オブジェクトを必ず1つにする
- 3-7-2 Singletonを生成するタイミング
第4章 そして誰も使わなくなったデザインパターン〜運用から始めるデザインパターン
- 4-1 プログラムの複雑化はFacadeで解消
- 4-1-1 デザインパターンを使わないほうがよい場合
- 4-1-2 複雑なプログラムを解消するFacadeパターン
- 4-2 デザインパターンの利用にあたって大切なこと
- 4-2-1 「理解」して「協力」してもらい「宣伝」しよう
第5章 連続バッチ/走査処理がしたい〜配列は難しい.配列は嫌だ.配列なんて最低だ
- 5-1 Javaと配列の関係
- 5-1-1 Javaにおける配列の使用方法
- 5-1-2 面倒臭がり屋さんと配列
- 5-1-3 コレクションの使用例
- 5-1-4 「昇順にならべる」ことの難しさ
- 5-1-5 連想配列を使う
- 5-2 Commandについて
- 5-2-1 コマンドによるパッチ処理
- 5-3 Iteratorを使用してはいけないパターン
- 5-3-1 Iteratorの短所とは?
第6章 速くて安くてうまいシステム構築へ向けて
- 6-1 Flyweightでデータの共有
- 6-1-1 やってはいけないデータ管理の例
- 6-1-2 Flyweightでらくらく共有
- 6-2 Proxyでちょっと時間稼ぎ
- 6-2-1 オブジェクト化コストについて考える
- 6-2-2 Proxyでnewするタイミングをずらす
第7章 「使えない・再利用できない」なら改造するしかない!〜再利用するために必要なこと
- 7-1 Adapterの2つの使い方
- 7-1-1 Adapterの使い方(1)〜interfaceの多重実装
- 7-1-2 Adapterの使い方(2)〜コンポジションを使用する場合
- 7-1-3 Adapterのよくない使い方
- 7-2 Bridgeの本質はAdapterと同じ
- 7-2-1 AdapterとBridgeの違いはどこにある?
- 7-3 Decoratorはもう1つの「一皮かぶせる」パターン
- 7-3-1 ネズミ算的なクラスの増加を抑える
第8章 最初から作成し直すのが面倒くさい〜データを作成する.保存する.展開する
- 8-1 Mementoでデータを管理する
- 8-1-1 データ部だけを抽出して管理する
- 8-2 Mementoでミスをしないために
- 8-2-1 Mementoの利点と弱点を理解する
- 8-3 Abstract Factoryは複雑な生成パターン
- 8-3-1 オブジェクトを生成するクラス群
- 8-3-2 「携帯電話」で考える
- 8-3-3 「人の情報」と「お薦めの店の情報」
第9章 これぞフレームワーク!〜動作の伝播と操作
- 9-1 Observerでボタンマスターを目指す!?
- 9-1-1 ボタンのオブジェクトについて考える
- 9-1-2 Observerを導入する
- 9-2 Observerを拡張する
- 9-2-1 Observerの拡張(1)〜インナークラス
- 9-2-2 Observerの拡張(2)〜無名インナークラス
- 9-3 try/catch() 節で例外処理を「まとめて処理」する
- 9-3-1 例外処理をまとめて無駄をなくす
- 9-4 Mediatorによる処理の集中管理
- 9-4-1 クラス数の増加が破綻を招く
- 9-4-2 Mediatorで振る舞いを集中管理する
第10章 実装と機能の分離〜この動作はおかしい! 差し替えよう
- 10-1 オブジェクトの生成と構築
- 10-1-1 「状態」と「戦略」をクラス化する
- 10-2 オブジェクトを渡して内部での振る舞いを変える〜Builder
- 10-2-1 「たまご」と「ピザ」が冷めたらどうする?
- 10-3 状態をあらかじめnewしておく
- 10-3-1 「ピザ用の調理方法」から「たまご用の調理方法」へ
第11章 実体はフォルダのようなもの〜木構造は「構造」が難しすぎる!
- 11-1 木構造とデザインパターン
- 11-1-1 Compositeと2分木
- 11-1-2 Compositeの注意点
- 11-1-3 木構造で処理を伝播させる
- 11-1-4 振る舞いをデータから切り離す
第12章 いままでとはまるで別物のInterpreterパターン
- 12-1 もっとも難しいInterpreterパターン
- 12-1-1 解析処理の文法をクラス化して木構造を形成させる
13章 初心者が軽視する,強烈にいけないこと〜理解不能と化すプログラムの根本的な原因
- 13-1 インデント(字下げ)がメチャクチャ
- 13-2 命名規則がメチャクチャ
- 13-3 他にもある「注意してほしいこと」
この本に関連する書籍
-
Java謎+落とし穴 徹底解明
Javaの理解を妨げる謎な仕様,わかりにくい機能に鋭く切り込み,ではどう実践的に使っていけばよいのかを徹底的に解説しています。Javaに挫折した人,今ひとつ理解があ...