口語体で書かれていて、割ととっつきやすい例が挙げられているので分かりやすい。この本を読む前にオブジェクト指向における再利用のためのデザインパターン、Javaデザインパターン徹底攻略 (標準プログラマーズライブラリ)、増補改訂版Java言語で学ぶデザインパターン入門などの本を読んだことがあるが挫折。そもそもデザインパターンを使う意図が分からないことが多い。そんなの使わなくてもいいじゃん!って感じ。Head Firstデザインパターン―頭とからだで覚えるデザインパターンの基本を読んでみて、なぜデザインパターンが必要なのか?個々のデザインパターンはどうなっているのか?を知ることができます。GOFの23デザインパターンすべてに対して詳細な説明があるわけではないので悪しからず。
■ 1章 デザインパターン入門
- アプリケーション内の変化する部分を特定し、不変な部分と分離する
- 実装に対してではなく、インタフェースに対してプログラミングする
- 継承よりコンポジションを好む
■ 2章 Observerパターン
- SWAGとは「裏付けのない単なる思いつき」
- Oberserverパターンは、オブジェクト間の1対多の依存関係を定義し、あるオブジェクトの状態が変化すると、それに依存しているすべてのオブジェクトが自動的に通知され更新されるようにする
■ 3章 Decoratorパターン
- クラスは拡張に対しては開かれた状態であるべきであるが、変更に対しては閉じた状態であるべき
- 型の一致を実現するために継承を使っているけど、振舞いを取得するために継承を使用しているわけではない
■ 4章 Factoryパターン
- Factory Methodパターンはオブジェクト作成のためのインタフェースを定義しますが、どのクラスをインスタンス化するかについてはサブクラスに決定させる。Factory Methodにより、クラスはサブクラスにインスタンス化を先送りできる。
- Abstract Factoryパターンは、具象クラスを指定することなく、一連の関連オブジェクトや依存オブジェクトを作成するためのインタフェースを提供する
- Factory Methodパターンは、継承を使ってオブジェクトを作成
- Abstract Factoryパターンは、オブジェクトコンポジションを使ってオブジェクトを作成
■ 5章 Singletonパターン
- Singletonパターンは、クラスがインスタンスを1つしか持たないことを保証し、そのインスタンスをアクセスするグローバルポイントを提供する
■ 6章 Commandパターン
- Commandパターンは、リクエストをオブジェクトとしてカプセル化し、その結果、他のオブジェクトを異なるリクエスト、キュー、またはログリクエストでパラメータ化でき、アンドゥ可能な操作もサポートする
- NoCommandオブジェクトはnullオブジェクトの一例
■ 7章 AdaptorパターンとFacadeパターン
- Adapterパターンは、クラスのインタフェースをクライアントが期待する別のインタフェースに変換します。アダプタは、互換性のないインタフェースのためにそのままでは連携できないクラスを連携させる
- Facadeパターンは、サブシステムの一連のインタフェースに対する、統合されたインタフェースを提供する。ファサードは、サブシステムをより使いやすくする高水準インタフェースを提供
■ 8章 Template Methodパターン
- Template Methodパターンはメソッドにおけるアルゴリズムの骨組みを定義し、いくつかの手順をサブクラスに先送りする。Template Methodは、アルゴリズムの構造を変えることなく、アルゴリズムのある手順をサブクラスに再定義させる
■ 9章 IteratorパターンとCompositeパターン
- Iteratorパターンは、内部表現を公開することなくアグリゲートオブジェクトの要素に順次アクセスする方法を提供する
- Compositeパターンでは、部分-全体階層を表現するために、オブジェクトをツリー構造に構成できる。Compositeパターンにより、クライアントは個別のオブジェクトとオブジェクトのコンポジションを同じように扱うことができる
■ 10章 Stateパターン
- Stateパターンでは、オブジェクトの内部状態が変化した際にオブジェクトがその振舞いを変更できる。オブジェクトはそのクラスを変更したように見える
下記のランキングに参加しています。
記事がお役に立ちましたら、(1つでもいいので)クリックをお願いします!
■ 関連書籍
| リファクタリング―プログラムの体質改善テクニック (Object Technology Series) | |
![]() | マーチン ファウラー Martin Fowler 児玉 公信 おすすめ平均 ![]() リファクタリングの勉強するなら オブジェクト指向がなんでいいの。その回答がここにある。 体質改善の処方箋 可読性向上の特効薬 コーディングが変わったAmazonで詳しく見る by G-Tools |
| パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法 | |
![]() | ジョシュア・ケリーエブスキー 小黒 直樹 村上 歴 おすすめ平均 ![]() 解説が丁寧 デザインパターンに違和感を抱いてる人にはオススメ シンプルで、読みやすいコードを。 良い設計はデザインパターンに行き着くAmazonで詳しく見る by G-Tools |




リファクタリングの

