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