logo

デザインパターンの分類

デザインパターンは主に次の 3 つのカテゴリに分類されます。 創造的デザイン パターン、構造的デザイン パターン、および行動的デザイン パターン。 これらは、詳細度、複雑さ、設計中のシステム全体への適用可能性のレベルに基づいて互いに異なります。

パターンにもイディオムとアーキテクチャ パターンの 2 種類があります。ただし、このチュートリアルではそれらについては説明しません。

創造的なデザインパターン

名前が示すように、既存のコードの柔軟性と再利用性を高めるオブジェクトまたはクラスの作成メカニズムを提供します。これらは依存関係を減らし、クラスとの相互作用を使用する方法を制御するため、複雑な構造に対処しなくなります。以下は創作デザインパターンの各種デザインパターンです。

アブストラクトファクトリー- これにより、具体的なタイプを指定せずにオブジェクトを作成できます。

ビルダー - 複雑なオブジェクトを作成するために使用されます。

工場出荷時の方法 - これにより、作成する正確なクラスを指定せずにオブジェクトを作成できます。

プロトタイプ - 既存のオブジェクトから新しいオブジェクトを作成するために使用されます。

シングルトン - シングルトン設計パターンでは、オブジェクトのインスタンスが 1 つだけ作成されるようにします。

コレクション ジャワ

構造設計パターン

構造設計パターンは主に、オブジェクトとクラスをより大きな構造に組み立てて、これらの構造が柔軟かつ効率的であることを確認する役割を果たします。これらはコードの読みやすさと保守性を高めるために非常に重要です。また、機能が適切に分離され、カプセル化されていることも保証されます。これにより、相互依存するもの間の最小限のインターフェイスが減少します。

アダプター - これにより、既存のクラスの 1 つにインターフェイスをラップすることで、互換性のない 2 つのクラスが連携して動作できるようになります。

複合 - オブジェクトのグループを単一のオブジェクトにラップします。

橋 - 抽象化を分離して、2 つのクラスが独立して変化できるようにします。

デコレーター - 実行時にオブジェクトの動作を動的に拡張します。

ファサード - これは、より複雑な基礎となるオブジェクトへのシンプルなインターフェイスを提供します。

フライ級 - 複雑なオブジェクト モデルのコストが削減されます。

プロキシ - これにより、コストが削減され、複雑さが軽減され、アクセスを制御するための基礎となるオブジェクトへのプレースホルダー インターフェイスが提供されます。

動作設計パターン

動作デザイン パターンは、あるクラスが他のクラスとどのように通信するかを決定します。

責任の連鎖 - 一連の処理オブジェクトに対するコマンドを表します。

指示 - パラメータのアクションをカプセル化するオブジェクトを生成します。

通訳者 - 特殊な言語を実装します。

イテレータ - オブジェクトの基本的な表現を侵害することなく、オブジェクトのすべての要素に順番にアクセスします。

調停者 - これは、既存のメソッドの詳細な知識を持つ唯一のクラスであるため、クラス間の疎結合を提供します。

メメント - オブジェクトを以前の状態に復元します。

観察者 - これにより、多数のオブザーバー オブジェクトがイベントを確認できるようになります。

州 - これにより、オブジェクトの内部状態が変化したときにオブジェクトの動作を変更できるようになります。

戦略 - これは、実行時に選択されるアルゴリズム ファミリの 1 つを提供します。

テンプレートメソッド - これにより、サブクラスが具体的な動作を提供できるようになります。また、アルゴリズムのスケルトンを抽象クラスとして定義します。

訪問者 - メソッドの階層を 1 つのオブジェクトに移動することで、アルゴリズムをオブジェクト構造から分離します。

次のチュートリアルでは、いくつかの重要なデザイン パターンを学習します。