23のデザインパターンの役割

作成タイプ:
抽象ファクトリー:特定のクラスを指定せずに、関連または相互依存する一連のオブジェクトを作成できるインターフェースを提供します。

ビルダーモード(ビルダー):複雑なクラスの表現をその構築から分離し、同じ構築プロセスが異なる表現を取得できるようにします。

ファクトリー・メソッド:オブジェクトを作成するためのインターフェースを定義しますが、サブクラスはインスタンス化する必要があるクラスを決定します。ファクトリメソッドは、サブクラスのインスタンス化を遅延させます。

プロトタイプモード(プロトタイプ):プロトタイプインスタンスを使用して、作成するオブジェクトのタイプを指定し、プロトタイプをコピーして新しいオブジェクトを作成します。

シングルトンモード(シングルトン):クラスにインスタンスが1つしかないことを確認し、それにアクセスするグローバルアクセスポイントを提供します。

構造タイプ:
アダプターモード(アダプター):クラスのインターフェイスをユーザーが希望する別のインターフェイスに変換します。これにより、元々互換性のないインターフェースを連携させることができます。

ブリッジモード(ブリッジ):クラスの抽象化部分を実現化部分から分離し、独立して変更できるようにします。

複合モード(複合):オブジェクトをツリー構造に結合して「全体」の階層構造を表すため、ユーザーは単一オブジェクトと結合オブジェクトの使用に一貫性を持たせることができます。

デコレーター:オブジェクトにいくつかの追加の責任を動的に追加します。サブクラスを派生させるよりも柔軟な、サブクラスで機能を拡張するための柔軟な代替手段を提供します。

ファサード:高レベルのインターフェースを定義して、サブシステム内のインターフェースのグループに一貫した外観を提供し、サブシステムの使用を簡素化します。

Flyweight:多数の細粒度オブジェクトの共有をサポートする効果的な方法を提供します。

プロキシモード(Proxy):このオブジェクトへのアクセスを制御するために、他のオブジェクトのプロキシを提供します。

動作:
責任の連鎖(Chain of Responsibility):複数のオブジェクトにリクエストを処理する機会を与えることにより、リクエストの送信者と受信者の間の結合を減らします。受信側の14.オブジェクトをリンクし、オブジェクトがリクエストを処理するまでチェーン内でリクエストを渡します。

コマンドモード(コマンド):要求をオブジェクトとしてカプセル化します。これにより、さまざまな要求を使用して、顧客のパラメーター化、要求のキューへの登録、または要求ログの記録を行い、可逆操作をサポートできます。

インタープリターモード(Interpreter):言語を指定して、その文法表現を定義し、文法表現に従って言語の文を解釈するために使用されるインタープリターを定義します。

イテレーターモード(イテレーター):オブジェクトの内部表現を公開せずに、集約オブジェクトの各要素に順次アクセスする方法を提供します。

メディエーターモード(メディエーター):メディエーターオブジェクトを使用して、一連のオブジェクトの相互作用をカプセル化します。これにより、オブジェクトは明示的に相互に呼び出す必要がなくなり、低カップリングを実現し、オブジェクト間の相互作用を独立して変更できます。

Mementoモード(Memento)は、カプセル化を破棄せずにオブジェクトの内部状態をキャプチャし、この状態をオブジェクトの外部に保存するので、将来オブジェクトを元の状態に復元できます。

オブザーバーモード(オブザーバー):オブジェクト間の1対多の依存関係を定義します。オブジェクトの状態が変化すると、それに依存するすべてのオブジェクトに通知され、自動的に更新されます。

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

戦略モード(Strategy):一連のアルゴリズムを定義し、それらを1つずつカプセル化し、それらを交換可能にして、アルゴリズムを使用するユーザーとは無関係にアルゴリズムを変更できるようにします。

テンプレートメソッド:操作でアルゴリズムのスケルトンを定義し、サブクラスがアルゴリズムの構造を変更せずにアルゴリズムの特定のステップを再定義できるように、サブクラスへのいくつかのステップを遅らせます。

訪問者モード(訪問者):特定のオブジェクト構造の各要素に作用する操作を表し、各要素のクラスを変更せずに、これらの要素に作用する新しい操作を定義します

おすすめ

転載: blog.csdn.net/weixin_43244265/article/details/108473416