GoFのデザインパターンの23種類の概要

GoFのデザインパターンの23種類の概要

GoFのの私達の23個のデザインパターンの前には一般的な考えを持っているために、どこの簡単な紹介の各設計パターンの機能の最初の、分類しました。後の章でさらに詳しく。

スキーマを作成します。

スキーマ・オブジェクトを作成する方法に焦点を当てが作成され、彼らが作成し、使用するオブジェクトにのみ結合度を軽減するために、ライン上で使用する方法を知って、オブジェクトを作成する方法を気にせず、ユーザーオブジェクトを分離しています。車の使用に注意を払うことなく、車のように人々がいる限り、彼らはラインで使用する方法を知っているようにして作られた方法です。このカテゴリに分類され、以下の5つのモード。

  • シングルトン(シングルトン)モード:制御が唯一の外部自己のグローバルアクセスのクラスのインスタンスを生成することができます。例:Windowsのウィンドウマネージャまたはタスクマネージャは、唯一のインスタンスです。
  • プロトタイプ(試作品)モード:他の類似の新しいインスタンスを作成し、そのコピーまたはクローンでオブジェクトのプロトタイプとして:高コスト(大きなファイルをロードし、時間のかかる初期化、CPUリソースの消費待ちなど)を作成します。
  • 抽象ファクトリー(抽象ファクトリー)モード:それぞれが同じ連絡先の多くの異なる製品を持っている抽象ファクトリクラスから継承された具体的なファクトリによって作成されます。例えば、異なる訓練学校は、使用コースや教材を作成することができます。
  • ビルダー(ビルダー)モード:複雑なオブジェクトのために、それは多くのステップとビルドメンバーを必要とし、そのようなオブジェクトは、比較的単純なコンポーネントまたは複数のステップに分解され、必要に応じて、彼らが構築された、複雑なまでオブジェクト。例:ファーストフードパッケージ、彼は別々に構成、ドリンク、フライドポテトはハンブルクで構成され、それぞれ、様々なアイテムを構築したり、作成するために、生産者を必要として、フルコースの食事のスタッフに戻ります。
  • ファクトリメソッド(ファクトリメソッド)モード:特定の生成物を生成する抽象ファクトリクラスから派生した特定の植物によって決まります。例えば、家具工場のソファ工場、テーブル、椅子、ベッド、工場の生産工場に属しソファ、椅子やベッドの家具です。

構造モデル

特定の方法に応じて、オブジェクトおよびクラスをモデル化する方法で、このフォーカスが一緒にオブジェクトまたはポリマーを合成するための新しい、より大きな、より緩やかに結合された構造の効果、継承クラスの構造は、この実施形態の組成、および構造体を形成します。様々なオブジェクトまたは弱い関係を有するポリマー組成物との間の継承関係よりオブジェクト間の結合の程度は、それほどクラスオブジェクトよりもオブジェクト構造は、結合の低い程度を有すること。デザインパターンの7種類は、次のように構造モデルがある属します。

  • 橋(ブリッジ)モード:このモードでは、クラスの現実(への参照を参照することにより、抽象クラス(これは抽象クラス継承の内部が言った抽象クラスではないことに注意してください)で二つのクラス、抽象クラスと実装クラスが含まれていブリッジ接続と実装クラスアップ)のような抽象的には分離し、それらが独立して変化させることができるという抽象ように実現しています。このモードでは、継承を達成するためにではなく、組み合わせの関係を使用して、抽象化は、カップリングの二つの可変程度の寸法を小さくするために実装しました。
  • デコレーション(デコ)モード:動的に他の追加機能へのアクセスを行うために、状態や行動に新しいオブジェクトを追加します。実装サブクラスを生成するために、継承を取るよりも、この拡張方法は、より柔軟です。このモデルは、重要なポイントは、そのインスタンスが含まれていると同時に、連続して装飾を装飾することです。
  • プロキシ(プロキシ)モード:クライアントプロキシオブジェクトを介して間接的に複雑なオブジェクトにアクセスします。薬剤は、本明細書に複雑なオブジェクトミニジャックのように、オブジェクトのいくつかの機能を強化確認または変更、管理限界を含む、関数に複雑なオブジェクトの制御アクセスを果たしました。いくつかの種類のリモートアクセスサービスのローカルエージェントとして最も一般的なプロキシモード。
  • アピアランス(外観)モード:複雑なサブシステムの数に基づいて、インタフェース、外部インタフェースは、これらのサブシステムは、使いやすく、アクセスされた上で一貫性のより高いレベルを提供します。例えば、この段階でキーショッピング、注文、アドレスを出荷し、その債権については、ここで使用されるモデルの外観完了です。
  • フライ(フライ級)モード:共有、CANを実装する必要があり、環境の変化に応じて、パブリックインターフェイスが可変と不変のオブジェクト間の2つの状態、すなわち内部状態および外部状態、同じ部分の内部状態を区別するかどうかに応じてきめ細かい多数のオブジェクトの再利用をサポートするために、メソッドに渡されたパラメータの形で外部の変化、。
  • オブジェクト階層の組み合わせ、このようなツリー構造として、ユーザは同様に処理設定やオブジェクトことができる:(コンポジット)モードの組合せ。それは個々のオブジェクトとオブジェクトの組み合わせへのユーザーアクセスと一致しています。このようなWindowsのファイルエクスプローラとして、あなたは同じ操作フォルダ、ファイルをすることができます。
  • アダプタ(アダプタ)モード:別のインタフェースに非互換インタフェース変換にクラスのインターフェイスを解決するためにクライアントが使用できるので、彼らは一緒に仕事ができること。たとえば、サードパーティ製のコンポーネントを使用したいが、その異なるインタフェースを使用して現在のシステム、そしてあなたがそれを変更したくない、あなたはこの問題を解決するためのアダプタを使用する必要があります。

行動モデル

クラスまたはオブジェクトと協調問題またはオブジェクトロール分布と制御アルゴリズムのためのモデルの実行時の型との間の複数の相互作用を処理するためにどのようにプロセス制御は、彼の治療領域の一部です。デザインパターンの以下の11種類がこのカテゴリーに分類されます。

  • デューティ鎖(責任の連鎖)モード:要求が処理されるまで、プロセッサを要求する複数の一般的なインタフェースは、以降、チェーンプロセスに一緒に連鎖移動から第1のオブジェクト要求オブジェクトました。償還承認のエスカレーションは、典型的な例です。
  • コマンド(コマンド)モード:執行によって発行された要求間の関係を切り離すコマンドオブジェクトにカプセル化要求。レストランの食事は、特定の例、受取人シェフ、ウェイターや顧客は、コマンド発行者であるメニューコマンド、です。
  • 観察者(観察)モード:オブジェクトの状態が変化するが、依存性の対象が自動的に通知し、それに応じて対応するオブジェクトと1つ以上のオブジェクト間の依存関係が存在します。購読パターン - このモードでは、パブリッシュとして知られています。このような製品の販売価格を懸念顧客と顧客との関係の変化など。
  • メディエーター(メディエーター)モード:複数のオブジェクト間の相互作用を処理する仲介を確立します。このように、各オブジェクトはなく、オブジェクト間の相互の相互作用よりも、仲介者との対話になります。これは、元の基準オブジェクトとの間の直接的な相関関係を持っていないオブジェクトとの間の結合の程度を低減することができます。スター構成に網状構造として、お互いが依存性を低減します。例えば、マイクロチャネルグループがメディエーターの典型的な例であり、すべてのグループメンバーがかなりの間でお互いに比べ、マイクロベースの間のチャネルを介して互いに相互作用することができます。
  • 状態(状態)モード:ステートフルオブジェクトの状態をカプセル化された状態の抽出物のその変化の挙動、オブジェクトの内部状態が変化し、挙動が変化し、それによってオブジェクトの動作を変更するような状態。このパターンは、ゲームやワークフローシステムにおいて一般的です。例えば、資金調達の承認を持っていない私たちが検討され、処理されている、完了し、他の州されています。
  • 反復子(イテレータ)モード:重合オブジェクトコレクション要素、その内部構造の理解を使用せず、収集順アクセス・インタフェースを提供します。最初にマップすることができ、このような画像の閲覧などの一般的なアプリケーションは、前、次、画像を表示するマップの最後には、典型的な反復モードのアプリケーションです。
  • 訪問者(ビジター)モード:元の型の定義を変更することなく、既存の構造のすべての要素は、新しい操作を定義し、実装します。このように、各要素は、各要素は、複数の訪問者がアクセスオブジェクト、および新しい操作を実行している、新しいさまざまな操作を提供することができます。こうした購入するスーパーマーケット、様々な、そして重量を量るためにいくつかの必要性、及び包装されるいくつかの必要性、彼らは評価のために必要なキャッシャースキャンコードなどの一般的な商品は、これらの異なる操作はVisitorパターンを介して達成することができます。
  • 覚書(メメント)モード:あなたは、回復のための時間でオブジェクトの記録状態を変更したい場合は、オブジェクトはメモ前の状態(オブジェクト)モード、およびメモを対象とメモにカプセル化することができますその後の使用のためのストレージ管理、。最も一般的な撤退(元に戻す)は、このようにして達成されます。
  • 戦略(ストラテジー)モード:多くの場合、与えられた問題のために、多くのアルゴリズムまたは解決するための戦略があります。ホストクラスでこれらのアルゴリズムはすべての条件分岐文を避けるために、我々は各アルゴリズムを扱うことが可能で、クラスが形成されて引き出され、またはこれらのアルゴリズムのすべてが同じ抽象クラスまたはインタフェース、およびコンテキストクラスと継承実装されています選択し、そのアルゴリズムや戦略のそれぞれを保持し、入り口のクライアントとして。例えば、様々なソートアルゴリズムを整理するために、この方法で使用することができます。
  • インタプリタ(通訳):使用言語またはインタープリタ型言語は、定義された命令またはステートメントなどの方法で表現されています。コードを解釈するようにコンパイラに似ています。
  • テンプレートの方法(テンプレート法)モード:ステップのいくつかを変更実装される固定構造によってアルゴリズムの動作複数のステップは、再定義するサブクラスを変更する際にこれらの特定のステップを置きます。データベースからデータをロードするプロセス:接続、アクセスデータ、データを処理し、近くに接続、データベースからデータを取得するためのプロセスが一定同じですが、さまざまなビジネスのために処理するデータ収集およびデータ、彼の実装の詳細は同じではありません。

 

おすすめ

転載: www.cnblogs.com/markkang/p/11832513.html