Strategyパターン
■目的 アルゴリズムを容易に切り替えるためのパターン ■メリット ・アルゴリズムを容易に切り替えることができるようになる ・動的にアルゴリズムを切り替えることもできる ■考慮事項 ・クラス数が増える。柔軟性を増しているこ…
■目的 アルゴリズムを容易に切り替えるためのパターン ■メリット ・アルゴリズムを容易に切り替えることができるようになる ・動的にアルゴリズムを切り替えることもできる ■考慮事項 ・クラス数が増える。柔軟性を増しているこ…
■目的 「機能のクラス階層」と「実装のクラス階層」を分離するために使う。 ■メリット ・階層を分離しておくことで、拡張する際にクラスの見通しがよくなる。 ・委譲を用いることで、クラス間の結びつきが緩くなり、ソースコードの…
■目的 Builderパターンと同様に、複雑なインスタンスの生成に役立つパターン。 Builderパターンが初期化処理をメソッドで分割していたのに対し、AbstractFactoryパターンは、抽象的な部品を組み合わせる…
複雑なインスタンス生成処理を簡略化するためのパターン。 複雑な初期化を経てインスタンスを生成する場合や、コンストラクタが数多くのパラメーターを要求する場合、Builderパターンを導入することで、インスタンス生成の複雑性…
http://www.atmarkit.co.jp/fjava/rensai3/eclipsetst03/eclipsetst03_1.html Eclipse Metrics Plugin(Frank Sauer)を入…
newでインスタンスを生成するのではなく、cloneで登録済みのインスタンスから新しいインスタンスを複製するパターン。 FactoryMethodパターンと比べ、インスタンス生成用のクラス(Client)がひとつで済むと…
インスタンスがひとつであることを保証するパターン。 システム環境変数とかに使う。 デザインパターンに詳しくない人でも、これだけは知っているケースが多い一番有名なパターン。 そして乱用は禁物。 なぜならグローバル変数と実質…
TemplateMethodをインスタンスの生成に応用したパターン。 インスタンス生成の枠組みと、実際のインスタンス生成のクラスを分離することでクラス間の依存関係を弱めることができる。 もっと言うと、newによる実際のイ…
抽象クラスで、処理の流れを記述して、詳細はサブクラスにおまかせするというパターン。 処理の流れを記述する抽象クラスのメソッドをテンプレートメソッドといい、finalにしてオーバーライドを防止するのが流儀。 割と無意識に使…
作成済みのAdapteeクラスを、Clientが期待しているインタフェースTargetから利用できるように、変換するクラスがAdapterクラス。 Adapteeを継承して、is-a関係として実装するやり方と、Adapt…
最近のコメント