デザインパターンのマインドマップ
デザインパターンとは
- 設計パターンは、ソフトウェア設計における特定の問題に対する、実証され、広く受け入れられ、再利用可能なソリューションです。
デザインパターンの分類
- 創作パターン
- シングルトンパターン
- ファクトリメソッドパターン
- 抽象的な工場パターン
- ビルダーパターン
- 試作パターン
- 構造パターン
- アダプターモード
- ブリッジモード
- コンビネーションモード
- デコレータパターン
- 外観モード
- フライウェイトモード
- プロキシモード
- 行動パターン
- テンプレートメソッドパターン
- コマンドモード
- イテレータパターン
- オブザーバーパターン
- 中間パターン
- メモモード
- 通訳モード
- ステートモード
- 戦略パターン
- 責任連鎖モデル
- ビジターモード
創作パターン
- シングルトン パターン: クラスにインスタンスが 1 つだけあることを保証し、グローバル アクセス ポイントを提供します。
- ファクトリ メソッド パターン: オブジェクトを作成するためのインターフェイスを定義し、サブクラスがどのクラスをインスタンス化するかを決定します。
- Abstract Factory Pattern: 具体的なクラスを指定せずに、一連の関連オブジェクトまたは相互依存オブジェクトを作成するためのインターフェイスを提供します。
- ビルダー パターン: 複雑なオブジェクトの構築をその表現から分離し、同じ構築プロセスで異なる表現を作成できるようにします。
- プロトタイプ パターン: 既存のオブジェクトをインスタンス化するのではなく、コピーして新しいオブジェクトを作成します。
構造パターン
- アダプター パターン: クラスのインターフェイスを、クライアントが予期する別のインターフェイスに変換します。
- ブリッジ パターン: 抽象部分をその実装部分から分離し、両方を独立して変更できるようにします。
- 結合モード: オブジェクトをツリー構造に結合して、「部分全体」の階層を表します。
- デコレーター パターン: 追加の責任をオブジェクトに動的に追加し、継承の代替となります。
- ファサード パターン: 複雑なサブシステムに簡素化されたインターフェイスを提供します。
- フライウェイト パターン: 共有テクノロジを通じて、多数のきめの細かいオブジェクトを効果的にサポートします。
- プロキシ パターン: このオブジェクトへのアクセスを制御するために、他のオブジェクトにプロキシを提供します。
行動パターン
- テンプレート メソッド パターン: 動作中のアルゴリズムのスケルトンを定義し、一部のステップをサブクラスに延期します。
- コマンド パターン: リクエストをオブジェクトにカプセル化し、さまざまなリクエストでクライアントをパラメータ化できるようにします。
- イテレータ パターン: オブジェクトの内部表現を公開せずに、コンテナ オブジェクト内の個々の要素にアクセスする方法を提供します。
- オブザーバー パターン: オブジェクト間の 1 対多の依存関係を定義します。オブジェクトの状態が変化すると、それに依存するすべてのオブジェクトが通知され、自動的に更新されます。
- メディエーター パターン: メディエーター オブジェクトを使用して、一連のオブジェクトの対話をカプセル化します。
- Memento パターン: カプセル化を破壊することなく、オブジェクトの内部状態をキャプチャし、この状態をオブジェクトの外部に保存します。
- インタプリタ パターン: 与えられた言語で、その文法の表現を定義し、その言語の文を解釈するインタプリタを定義します。
- 状態パターン: 内部状態が変化したときにオブジェクトの動作を変更できるようにします。
- 戦略パターン: 一連のアルゴリズムを定義し、各アルゴリズムをカプセル化して、それらを交換可能にします。
- 責任連鎖パターン: リクエストの送信者と受信者を切り離し、オブジェクトの 1 つがリクエストを処理するまで複数のオブジェクトがリクエストを処理できるようにします。
- ビジター パターン: オブジェクト構造内の各要素に作用する操作を表します。これを使用すると、各要素のクラスを変更せずに、これらの要素に作用する新しい操作を定義できます。
上記は、ソフトウェア設計で広く使用されている一般的な設計パターンです。デザイン パターンを合理的に使用することで、コードの可読性、保守性、拡張性が向上し、重複コードの記述が削減され、ソフトウェア開発効率が向上します。