アダプターモードの説明
注:アダプターモードは通常、使用するインターフェイスがアプリケーションまたはシステムと一致していない場合ですが、紹介する必要があります。
シーン:携帯電話を購入したようなもので、購入した後、充電ケーブルプラグは3つのプラグであることがわかりましたが、自宅ではソケットには2つのプラグしかありません。私たちは何をすべきですか?便利なため、そしてどこでも充電できるようにするには、ユニバーサル充電アダプターを購入する必要があります。電話を自宅で請求できるように。それ以外の場合は、それを配置するか、充電するためにこのプラグを持っている場所に走ることができます。
実際の開発環境では、サードパーティアプリケーションによって提供される古いシステムまたはインターフェイスは定義されたインターフェイスと一致しないため、このような古いまたはサードパーティのインターフェイスは、インターフェイス指向の環境では使用できません。現時点では、アダプタークラスを使用してクラスを継承し、アダプタークラスがインターフェイスを実装して古いシステムまたはサードパーティのアプリケーションのインターフェイスを導入させます。
このようにして、インターフェイスプログラミングを使用する場合、この適応マッチングクラスを使用して、古いシステムまたはサードパーティアプリケーションのインターフェイスを間接的に呼び出すことができます。
JavaScriptでは、動的オブジェクト指向言語のアダプターパターンと同様のコードを実装するには、プロトタイプの継承されたインスタンスを使用してそれを実装できます。インターフェイスの制約に基づいているが、JavaScriptにはインターフェイス番号がないため、インターフェイスレイヤーを削除し、インターフェイス実装クラスターゲットを直接実装して、同様のソースコードをシミュレートします。
ソースコードの例
1。適応するクラスとインターフェイス方法:
コードコピーは次のとおりです。
関数adaptee(){
this.name = 'adaptee';
}
adaptee.prototype.getname = function(){
this.nameを返します。
}
2。通常の実装クラス[JavaScriptにはインターフェイスがないため、実装クラスが直接提供されます]
コードコピーは次のとおりです。
関数ターゲット(){
this.name = 'ターゲット';
}
Target.Prototype.QueryName = function(){
this.nameを返します。
}
3。適応クラス:
コードコピーは次のとおりです。
function adapte(){
this.name = '';
}
adapte.prototype = new Adaptee();
adapte.prototype.queryname = function(){
this.getName();
}
4。使用方法:
コードコピーは次のとおりです。
var local = new Target();
local.queryname(); //通常の実装クラスを呼び出します
var adapte = new Adapte();
adapte.QueryName(); //古いシステムまたはサードパーティのアプリケーションインターフェイスを呼び出す。
その他の指示
上記の4番目のステップでは、VAR LocalおよびVar Adapteは、次のようなJavaやC#などのオブジェクト指向の言語に似ています。
コードコピーは次のとおりです。
インターフェイスターゲット{
public string queryname();
}
//インターフェイス参照ポインター
ターゲットlocal = new RealTarget(); //つまり、上記のJavaScriptのターゲット実装クラス
local.queryname();
//アダプタ
ターゲットadapte = new Adapte();
adapte.QueryName();
アダプタークラスは、インターフェイスをターゲットクラスインターフェイスに接続する中間層であることがわかります。必要なターゲットが既に存在する問題を解決するために使用されますが、直接使用することはできず、コード定義と組み合わせて使用できないため、アダプターモードを使用する必要があります。アダプターモードは、変換モードとパッケージモードとも呼ばれます。