この記事では、JavaScript 設計パターンの 5 番目のシリーズであるアダプター パターンを紹介します。興味のある方は、
アダプター パターンとは何ですか? をご覧ください。いわゆる
アダプター パターン
は、新しいインターフェイスを使用することです。既存のインターフェイスへのパッケージ化は、クラスと API 間の不一致を処理するために実行されます。このパターンを使用するオブジェクトはラッパーとも呼ばれます。 たとえば、インターフェイスがあります:
function api (x1, x2, x3) {
console.log(x1 + x2 + x3); // 用console.log来模拟接口的相关操作
}
ログイン後にコピー
次に、オブジェクト データがあります:
var obj = {
a: '我',
b: '很',
c: '帅'
}
ログイン後にコピー
データがインターフェイスのパラメーターと一致しないことがわかり、obj を直接入力して API を呼び出すことができません。
今何をすべきですか?アダプター関数を定義できます:
function adapter (o) {
// 通过适配器函数来调用目的api
api(o.a, o.b, o.c);
}
adapter(obj);
// 我很帅
ログイン後にコピー
このようにして、アダプター関数adapter()を通じてobjを直接渡してAPIを呼び出すことができ、クラスとAPIの間の不一致の問題は解決されます。
概要
アダプター パターンは、クラスと API の間の不一致を処理するために、既存のインターフェイスを新しいインターフェイスでラップすることです。このパターンを使用するオブジェクトはラッパーとも呼ばれます。
該当する状況
既存のオブジェクトを使用していますが、そのメソッドまたはプロパティ インターフェイスが要件を満たしていません。 他の関係のないオブジェクトや非表示のオブジェクトと連携できる再利用可能なオブジェクトを作成したい 使用したいオブジェクトはすでに存在しますが、それぞれのオブジェクトに対してプロトタイプの継承を使用することはできませんそのインターフェイスと一致します。オブジェクト アダプターは、その親オブジェクトのインターフェイス メソッドまたはプロパティを適応させることができます。
他のモードとの違い
アダプターとブリッジは似ていますが、ブリッジの目的は、インターフェイス部分と実装部分を分離して簡単にすることです。そしてより自立的に変化すること。 デコレーター パターンは、インターフェイスを変更せずにオブジェクトの機能を強化するため、アダプターよりもプログラムに対する透過性が向上します。 プロキシ モードは、インターフェイスを変更せずに、別のインターフェイスのプロキシを定義します。 ファサード モードはインターフェイスを簡素化するためのものであり、追加のオプションは提供されません。 アダプターは、あるインターフェースを別のインターフェースに変換しますが、特定の機能を除外したり、インターフェースを簡素化したりすることはありません。 関連推奨事項:
JavaScript デザイン パターン シリーズ 1: ファクトリ パターン
JavaScript デザイン パターン シリーズ 3: ビルダー パターン
以上がJavaScript デザイン パターン シリーズ 5: アダプター パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。