目次
デザインパターンとは??
• 頻繁に直面する設計上の課題に対して、繰り返 し使われる実績のある理想的な解法
– 設計のテンプレート・ひな形
– 対象に応じて変更、適応させて利用する – 部品ではない(=そのままは使えない)
効果
– 設計の原則に則った設計を促す
– 理解性、拡張性、再利用性が良い
– 開発経験の少ない人と、経験が豊富な人の差を埋める
Template Method パターン
概要
同じ親クラスを持つ子クラスが複数ある場合に適用するデザインパターンでコードの重複を少なくする
用途
複数のサブクラスで、同じではないが似たような実装を必要とする場合に用いる
解決法
重複コードを抽象クラスにまとめる
抽象クラスをテンプレートとして共通する処理を実装する
実装が分かれる具体的な処理は抽象宣言する
Factory Method パターン
概要
オブジェクト生成用のコードをカプセル化し、直接見えなくする
用途
具体的なクラス名を必要とするオブジェクト生成を整理する(抽象型やインタフェースが使えない)
– オブジェクト生成に必要な知識をカプセル化する(知識境界)
解決法
抽象クラスを作り、オブジェクトを生成するコンストラクタ・メソッ ドを宣言する
Strategy パターン
概要
実行時にアルゴリズムの選択を実現する
用途
状況に応じて、複数の選択肢から最適なアルゴリズムを選択する
解決法
Decorator パターン
概要
用途
解決法
Observer パターン
概要
publish-subscribeのアーキテクチャを実現する
用途
解決法
Visitor パターン
概要
用途
解決法