↓↓↓↓Head firstデザインパターン↓↓↓↓をamazon.co.jpで購入する
Head firstデザインパターン
↑↑↑↑をamazon.co.jpで内容をチェック/購入する↑↑↑↑
目次
序章 この本が対象としている読者 読者の「脳」が何を考えているか理解しています メタ認知 注意事項 テクニカルレビューアの紹介 謝辞
1章 デザインパターン入門:デザインパターンへようこそ SimUDuckアプリケーション 継承について考えるジョー… ソフトウェア開発における1つの変わらぬもの 不変な部分から変化する部分を分離する 鴨の振舞いを設計する Duckコードをテストする 振舞いを動的に設定する カプセル化された振舞いに対する全体像 「HAS-A」は「IS-A」より優れている場合がある Strategyパターン 共有されたパターン語彙の威力 どのようにデザインパターンを使用するか? デザインツールボックスのためのツール デザインパズルの答え
2章 Observerパターン:オブジェクトを事情通に 気象監視アプリケーション Observerパターンとの出会い パブリッシャ+サブスクライバ=Observerパターン 5分間のドラマ:監視(observation)の対象(subject) Observerパターンの定義 疎結合の威力 気象観測所を設計する 気象観測所を実装する Javaの組み込みObserverパターンを使用する java.util.Observableの暗黒面(ダークサイド) デザインツールボックスのためのツール エクササイズの答え
3章 Decoratorパターン:オブジェクトの装飾 スターバズコーヒーへようこそ 開放/閉鎖原則(Open-Closed Principle) Decoratorパターンとの出会い デコレータを使って飲み物の注文を構築する Decoratorパターンの定義 飲み物を装飾する スターバズのコードを記述する 実世界のデコレータ:Java I/O 独自のJava I/Oデコレータを記述する デザインツールボックスのためのツール105 エクササイズの答え
4章 Factoryパターン:OOの利点を活用した構築 「new」を見たら、「具象」と考える オブジェクト町ピザ オブジェクト作成をカプセル化する 簡単なピザファクトリを構築する Simple Factoryの定義 ピザ屋用のフレームワーク サブクラスに決定させる PizzaStoreを作成しよう ファクトリメソッドを宣言する Factory Methodパターンとの出会い 並列クラス階層 Factory Methodパターンの定義 非常に依存関係の多いPizzaStore オブジェクトの依存関係を考察する 依存性反転の原則 それでは、PizzaStoreに戻りましょう 一連の食材 食材ファクトリを構築する Abstract Factoryを考察する 舞台裏 Abstract Factoryパターンの定義 Factory MethodとAbstract Factoryの比較 デザインツールボックスのためのツール エクササイズの答え
5章 Singletonパターン:唯一のオブジェクト 唯一無二 小さなSingleton 典型的なSingletonパターンの実装を分析する Singletonの告白 チョコレート工場 Singletonパターンの定義 ヒューストン!ヒューストン!ハーシー!ハーシー!問題が発生しました…… JVMになってみよう マルチスレッドを扱う Singletonに関するQ&A デザインツールボックスのためのツール エクササイズの答え
6章 Commandパターン:呼び出しのカプセル化 Home Automation or Bust社 リモコン ベンダのクラスを調べる その間に食堂に戻って…… 食堂のやり取りを調べましょう オブジェクト町の食堂の役割と責務 食堂からCommandパターンへ 最初のコマンドオブジェクト Commandパターンの定義 Commandパターンとリモコン リモコンを実装する リモコンを稼動させる マニュアルを記述する時が来ました 状態を使用してアンドゥを実装する すべてのリモコンにはパーティモードが必要です マクロコマンドを使用する Commandパターンのその他の使用法:リクエストのキューイング Commandパターンのその他の使用法:リクエストのロギング デザインツールボックスのためのツール エクササイズの答え
7章 AdaptorパターンとFacadeパターン:適合可能にする 身の回りのアダプタ オブジェクト指向アダプタ Adapterパターンの説明 Adapterパターンの定義 オブジェクトアダプタとクラスアダプタ 今夜の対談:オブジェクトアダプタとクラスアダプタ 実世界のアダプタ EnumerationをIteratorに適合させる 今夜の対談:DecoratorパターンとAdapterパターン スイートホームシアタ 照明、カメラ、ファサード! ホームシアタファサードを構築する Facadeパターンの定義 最小知識の原則(Principle of Least Knowledge) デザインツールボックスのためのツール エクササイズの答え
8章 Template Methodパターン:アルゴリズムのカプセル化 コーヒークラスと紅茶クラスを作る CoffeeとTeaの抽象化 さらに設計を進める prepareRecipe()を抽象化する 何を行ったのか? Template Methodとの出会い 紅茶を作ってみましょう テンプレートメソッドにより何が得られましたか? Template Methodパターンの定義 コード詳説 テンプレートメソッドをフックする フックを使う Coffee? Tea? いいえ、TestDriveを実行しましょう ハリウッド原則 ハリウッド原則とテンプレートメソッド 実際のテンプレートメソッド テンプレートメソッドを使ってソートする ソートすべき鴨がいくつかあります 鴨を比較する 鴨ソートマシンの作成 フレームでスイング アプレット 今夜の対談:Template MethodとStrategy デザインツールボックスのためのツール エクササイズの答え
9章 IteratorパターンとCompositeパターン:適切に管理されたコレクション オブジェクト町食堂とオブジェクト町パンケーキハウスの合併 メニューの実装を比較する 反復処理をカプセル化できますか? Iteratorパターンとの出会い DinerMenuにイテレータを追加する 設計を確認する java.util.Iteratorを使って整理する これで何が得られるのか? Iteratorパターンの定義 単一の責務 イテレータとコレクション Java 5でのイテレータとコレクション これで一安心だと思ったら…… Compositeパターンの定義 コンポジットを使ってメニューを設計する コンポジットメニューを実装する イテレータを思い出す Nullイテレータ イテレータとコンポジットを合わせた魔法…… デザインツールボックスのためのツール エクササイズの答え
10章 Stateパターン:物事の状態 どのように状態を実装するか? 状態マシンの基礎 状態マシンの第一弾 やっぱり来ました……変更要求です! 面倒な「状態」…… StateインタフェースとStateクラスを定義する Stateクラスを実装する ガムボールマシンを書き直す Stateパターンの定義 State対Strategy Stateの健全性チェック 危うく忘れるところでした! デザインツールボックスのためのツール エクササイズの答え
11章 Compoundパターン:パターンのパターン Compoundパターン 鴨との再会 アダプタを追加する デコレータを追加する ファクトリを追加する コンポジットとイテレータを追加する オブザーバを追加する パターンの要約 「鴨」瞰図:クラス図 モデル/ビュー/コントローラの歌 デザインパターンはMVCへの鍵である パターン色の眼鏡でMVCを考察する
レビュー
出版社 / 著者からの内容紹介 初めて学ぶ方、過去に挫折した経験のある方、知識を確固たるものにしたい方を対象に、イラストや写真を使ってやさしく楽しく解説する人気のHead Firstシリーズのデザインパターン編。刺激的なレイアウト、思わず膝を叩く見事なたとえ、引き込まれる小話、楽しいクイズやパズルで飽きることなく読み進むことができます。複雑難解なデザインパターンの概念が面白いほどよくわかる、目からウロコの画期的な書籍です。
著者略歴 (「BOOK著者紹介情報」より) 佐藤 直生 1974年生まれ。1999年、日本オラクル株式会社に入社。現在はJ2EEやWebサービスに関するテクノロジ・エバンジェリストとして活動中
木下 哲也 1967年、川崎市生まれ。早稲田大学理工学部卒業。1991年、松下電器産業株式会社に入社。全文検索技術とその技術を利用したWebアプリケーション、VoIPによるネットワークシステムなどの研究開発に従事。2000年に退社し、オーストラリアのブリスベンに移住。移住後は、主にIT関連の技術書の翻訳、監訳に従事(本データはこの書籍が刊行された当時に掲載されていたものです)
|