デザインモードアダプタモード(アダプタ)

動作のモードは、クライアントがそのようなので、非互換インタフェースで別段基づくものなど、他のインターフェイスは、ワークと一緒に働くことができない期待クラスのアダプタインタフェースを変換することです。練習は、既存のクラスに包まれた、独自のインターフェースのようなものです。デザインパターンのこのタイプは、所属する構造設計パターンを

UMLの役割:

出典:クラス、インターフェイス、オブジェクト、つまり件のデータを適応させる必要があります。 
あなたはどこにしたいです:クラスを取得する必要性を、Sourceはクラスオブジェクトを介して取得適応、つまり、我々は、取得するための口実を楽しみにしています。 
アダプタ:アダプタクラス、連携元と転送先を、二人は一緒に働くことができるように。

実装:

(継承を使用して実装)クラスアダプタモード
オブジェクトアダプタ(組み合わせオブジェクトを使用して実装)
インタフェースアダプタモード

シナリオ:

システムは、既存のクラスを使用する必要はなく、既存のクラスと互換性がありません。
あなたは次のようになり、将来に直面するためには、お互いクラスにはほとんど関係の一部、および拡張が容易なため、再利用可能なクラスを作成する必要があります。
私たちは、統一された出力インターフェイスが必要ですが、入力タイプは予測不可能でした。

 

クラスのアダプタモードの例の分析

使用シナリオ:我々は、ポートAは、我々が望んでいた方法ではありませんが、適切な方法で別のインターフェイスBで見つかっアクセスしたいとき、我々はアクセスインタフェースAを変更しないでください、この場合には、我々は、アダプタを定義することができます私たちは、インタフェースAで現在のアクセス方法を継続できるように、アダプタは、私たちが訪れCへのインタフェースAを実装し、転送し、その後、Bインターフェースの継承の実装クラスB1、B、我々はインタフェースアダプタにアクセスすることができますするメソッドCはCであります方法B1の適切な時間に、直接参照方法アダプタCに我々インターフェース、従って単純なアダプタクラスを完成アップ。

PS2とUSB例をそらすために、

PS2インターフェース:Ps2の

1つのパブリックインターフェイスPs2の{ 
2空隙isPs2(); 
3}

USBインターフェース:USB

1つのパブリックインターフェースUSB { 
2空隙isUsb(); 
3}

USBインターフェースカテゴリ:Usber

パブリック クラス Usberは実装Usbの{ 
     @Override 
    公共 無効isUsb(){ 
         System.out.printlnは( "USB口" ); 
     } 
 
 } 

アダプタ:アダプタ

パブリック クラスアダプタ延び Usberが実装Ps2の{ 

     @Override 
     公共 ボイドisPs2を(){ 
         isUsb()。
     } 
 
 }

テストカテゴリ:Clienter

1パブリッククラスClienter { 
2 
3公共の静的無効メイン(文字列[] args){ 
4のPS2 P =新しいアダプター(新しいUsber())。
5 p.isPs2()。
6} 
7 
8}

結果があることを示しました。

USBポート

説明する例:

  私は、PS2はとても機器PS2へのホストアクセスを許可することが可能になるPS2プラグUSBプラグを変換するコンバータを見つけるために、デバイスを接続しますが、唯一のホストアダプタプラグUSBインターフェイスにあります。

  インタフェースPs2の:説明インタフェースフォーマットPS2

  インターフェースUSB:USBインタフェースフォーマットの説明

  クラスUsber:USBは、それが特定のUSBインタフェースフォーマットインタフェースの実装クラスです

  アダプタ:USBインターフェース・フォーマットになるために変換するためのPS2インタフェースフォーマット

 

参考リンクします。https://www.cnblogs.com/V1haoge/p/6479118.html

 

おすすめ

転載: www.cnblogs.com/lucky1024/p/11549578.html
おすすめ