※デザインパターン※→☆☆============アダプタ構造モデルモード(8)

概要モード

       所望の別のインターフェイスへのクライアントインタフェースは、互換性のないインターフェースのこれらのクラスが一緒に働くことができるアダプタモード、別名ラッパー(ラッパー)。彼はスピードの発展にサードパーティのライブラリを購入するジョブに適用されます。アプリケーションでは、サードパーティ(アダプタモードは、クラスを提供し、これらのインタフェースは、(一緒に動作しない)クラスと互換性がないようにするために一緒に働くことができ、インターフェース、インターフェースは、第三者によって提供されるものと矛盾して設計されています購入した顧客へのライブラリ)のインタフェース()は、所望のインターフェース。

また、ソフトウェアの設計に発生する可能性があります。コンポーネントは、いくつかのビジネス機能が既に開発し、既存のコンポーネントライブラリ内に存在する必要がありますが、彼らは、現在のシステムのインタフェース仕様との互換性がない場合、これらのコンポーネントと高コスト、再開発されアダプター(アダプター)を使用する場合のモードは、これらの問題を解決することができます。

このような電源アダプタとして、私が担当したいが、私は直接中国220V、日本110Vを使用するさまざまな国で電源を入れることができない、これは間違いなく、あなたが使用するために準備を充電するために少し長くコンバータ電圧へのアダプタが必要。この時間を破裂されます。

  • 標的(ターゲット抽象クラス):抽象クラスを定義し、特定の所望の顧客インターフェース、またはインターフェースは抽象クラスであり、クラスはコンクリートであってもよいです。
  • アダプタ(アダプタクラス):アダプタは、継承を介して対象物体ジカルボンAdapteeに関連付けられているオブジェクトアダプタにAdapteeとTarget、コアアダプタモードアダプタクラスを適応させるためのコンバータとして、別のインターフェイスを呼び出すことができます接触を持っている人。
  • Adaptee(カテゴリー別適応):フィッタすなわち、既存のインタフェースを定義する役割を、適応このインタフェースアダプタが必要、フィッタクラスは、一般的に具象クラスで、それは利用サービスに顧客の要望が含まれています。いくつかの場合にはこの方法は、クラスのソースコードによって適合されなくてもよいです。

 

モード構造

クラススキーマ構造

オブジェクトモデル構造

モード議論

次のようにこのモードの主な利点はあります。

  • クライアントは透過的にインタフェースアダプタを介してターゲットを呼び出すことができます。
  • 既存のクラスと多重化は、プログラマの必要性は、フィッタ、元のコードの再利用既存のクラスを変更できません。
  • ターゲットクラスとフィッタターゲットクラスとクラスのインタフェースアダプタの問題を解決するデカップリングのクラスが矛盾しています。

 

最後に、我々はまた、注意深く実際の状況を考慮する必要がありますどのように特権モードが、どんなに。

パターンの実装

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
シャオティンノートはできるだけ詳細に説明する後いくつかの知識を説明し、私はあなたが私のブログに注力していきたいと考えています。
このセクションでは、ここで最後に指摘しています。

シャオティンは、自分の学習経験を置くために時間を持ってみんなと一緒に書き込みや共有に優れた知識を感じるだろう。
道路の開発をプログラミングすることは非常に多く、一緒に共有して一緒に学び、共通の進行できるようにし、非常に長いです。
あなたがどんな記事の監督の場所を持っている場合は、私を修正してください。私はあなたを願っていますし、私はプログラミングに関連する問題を議論するより、コメントすることができます。
最後に、ご支援をありがとうございました~~~となって

       完全なC ++コードの例(テスト対象コードをVS2017で実行することができる)
コードおよび関連情報ダウンロード
              https://gitee.com/arvinxt/DesignPattern
 

公開された170元の記事 ウォンの賞賛207 ビュー459万+

おすすめ

転載: blog.csdn.net/xiaoting451292510/article/details/103558213
おすすめ