Chain of Responsibilityパターン
■目的 ある要求が発生したときに、その要求を処理するオブジェクトをダイレクトに決められない場合に、たらい回しを実現するためのパターン。 ■メリット 要求を送信するオブジェクトと受信するオブジェクトの関係が弱まる 要求を処…
■目的 ある要求が発生したときに、その要求を処理するオブジェクトをダイレクトに決められない場合に、たらい回しを実現するためのパターン。 ■メリット 要求を送信するオブジェクトと受信するオブジェクトの関係が弱まる 要求を処…
■目的 処理をデータ構造から分離するために適用する。 Visitorがデータに訪問して処理を行う。 ■メリット データ構造クラスを変更しなくてもConcreteVisitorを追加するだけで機能を追加できる 具象クラスご…
■目的 機能を組み合わせて新たな機能を作成する場合や、機能を実行時に付け外したい場合に役に立つパターン。 代表的な実装例として、java.ioパッケージの各種APIが挙げられる。 ■メリット オブジェクトに動的に機能を追…
■目的 ディレクトリとサブディレクトリ、ファイルの関係のように、容器と中身を同一視し、再帰的な構造を作るパターン。 ツリー構造の実現に最適。 ■メリット 集団を構成するクラスと要素を構成するクラスを一様に扱え、クラスの数…
■目的 アルゴリズムを容易に切り替えるためのパターン ■メリット ・アルゴリズムを容易に切り替えることができるようになる ・動的にアルゴリズムを切り替えることもできる ■考慮事項 ・クラス数が増える。柔軟性を増しているこ…
■目的 「機能のクラス階層」と「実装のクラス階層」を分離するために使う。 ■メリット ・階層を分離しておくことで、拡張する際にクラスの見通しがよくなる。 ・委譲を用いることで、クラス間の結びつきが緩くなり、ソースコードの…
■目的 Builderパターンと同様に、複雑なインスタンスの生成に役立つパターン。 Builderパターンが初期化処理をメソッドで分割していたのに対し、AbstractFactoryパターンは、抽象的な部品を組み合わせる…
複雑なインスタンス生成処理を簡略化するためのパターン。 複雑な初期化を経てインスタンスを生成する場合や、コンストラクタが数多くのパラメーターを要求する場合、Builderパターンを導入することで、インスタンス生成の複雑性…
newでインスタンスを生成するのではなく、cloneで登録済みのインスタンスから新しいインスタンスを複製するパターン。 FactoryMethodパターンと比べ、インスタンス生成用のクラス(Client)がひとつで済むと…
インスタンスがひとつであることを保証するパターン。 システム環境変数とかに使う。 デザインパターンに詳しくない人でも、これだけは知っているケースが多い一番有名なパターン。 そして乱用は禁物。 なぜならグローバル変数と実質…
最近のコメント