Deskripsi mode adaptor
Catatan: Mode adaptor umumnya merupakan kasus di mana antarmuka yang akan digunakan tidak konsisten dengan aplikasi atau sistem, tetapi perlu diperkenalkan;
Adegan: Sepertinya kami membeli ponsel, dan setelah membelinya, kami menemukan bahwa steker kabel pengisian adalah tiga colokan, tetapi di rumah, hanya ada dua colokan di soket. Apa yang harus kita lakukan? Untuk kenyamanan, dan untuk dapat mengisi daya di mana saja, Anda harus membeli adaptor pengisian daya universal; sehingga telepon dapat dikenakan biaya di rumah; Kalau tidak, Anda hanya dapat menempatkannya, atau berlari ke tempat dengan steker ini untuk mengisi daya;
Dalam lingkungan pengembangan yang sebenarnya, karena sistem atau antarmuka lama yang disediakan oleh aplikasi pihak ketiga tidak cocok dengan antarmuka yang ditentukan, antarmuka pihak lama atau ketiga tersebut tidak dapat digunakan dalam lingkungan yang berorientasi antarmuka. Pada saat ini, kami menggunakan kelas adaptor untuk mewarisi kelas yang akan diadaptasi dan membiarkan kelas adaptor mengimplementasikan antarmuka untuk memperkenalkan antarmuka sistem lama atau aplikasi pihak ketiga;
Dengan cara ini, saat menggunakan pemrograman antarmuka, Anda dapat menggunakan kelas pencocokan adaptif ini untuk secara tidak langsung memanggil antarmuka sistem lama atau aplikasi pihak ketiga.
Dalam JavaScript, untuk mengimplementasikan kode yang mirip dengan pola adaptor bahasa yang berorientasi objek dinamis, Anda dapat menggunakan instance prototipe yang diwariskan untuk mengimplementasikannya; Karena didasarkan pada kendala antarmuka, tetapi JavaScript tidak memiliki nomor antarmuka, kami menghapus lapisan antarmuka dan secara langsung mengimplementasikan target kelas implementasi antarmuka untuk mensimulasikan kode sumber yang serupa;
Contoh Kode Sumber
1. Kelas dan metode antarmuka untuk diadaptasi:
Salinan kode adalah sebagai berikut:
fungsi adaptee () {
this.name = 'adaptee';
}
Adaptee.prototype.getName = function () {
kembalikan nama ini;
}
2. Kelas Implementasi Normal [Karena tidak ada antarmuka dalam JavaScript, kelas implementasi disediakan langsung]
Salinan kode adalah sebagai berikut:
fungsi target () {
this.name = 'target';
}
Target.prototype.queryName = function () {
kembalikan nama ini;
}
3. Kelas Adaptasi:
Salinan kode adalah sebagai berikut:
fungsi adapte () {
this.name = '';
}
Adapte.prototype = adapte baru ();
Adapte.prototype.queryName = function () {
this.getName ();
}
4. Cara menggunakan:
Salinan kode adalah sebagai berikut:
var local = target baru ();
local.queryname (); // Memanggil kelas implementasi normal
var adapte = adapte baru ();
adapte.queryname (); // memanggil sistem lama atau antarmuka aplikasi pihak ketiga;
Instruksi lainnya
Pada langkah keempat di atas, var lokal dan var adapte mirip dengan bahasa yang berorientasi objek seperti java dan c#, seperti:
Salinan kode adalah sebagai berikut:
Target antarmuka {
queryname string publik ();
}
// Pointer Referensi Antarmuka
Target local = new realtarget (); // yaitu, kelas implementasi target JavaScript di atas
local.queryname ();
//adaptor
Target adapte = adapte baru ();
adapte.queryname ();
Dapat dilihat bahwa kelas adaptor adalah lapisan menengah yang menghubungkan antarmuka ke antarmuka kelas target; Ini digunakan untuk menyelesaikan masalah bahwa target yang diperlukan sudah ada, tetapi kami tidak dapat menggunakannya secara langsung dan tidak dapat menggunakannya bersamaan dengan definisi kode kami, jadi kami harus menggunakan mode adaptor. Mode adaptor juga disebut mode konversi dan mode pengemasan;