Deskripsi Mode Agen
Catatan: Seperti namanya, itu adalah menggunakan satu kelas untuk mengganti kelas lain untuk melakukan fungsi metode. Pola ini sedikit mirip dengan mode dekoratif. Perbedaannya adalah bahwa mode proxy menggantikan klien untuk menginisialisasi kelas objek proxy, sedangkan mode dekoratif dijalankan dengan antarmuka atau referensi ke parameter dekorator awal.
Dalam bahasa yang berorientasi objek yang dinamis, mode proxy memainkan peran mengendalikan dan memodifikasi kelas proxy, dan juga memainkan peran tersembunyi dan terlindungi penuh untuk kelas proxy; Kelas proxy secara tidak langsung diinisialisasi dan dipanggil hanya ketika kita membutuhkannya;
Deskripsi Adegan:
Contoh yang sangat umum menyewa rumah. Penyewa ingin menyewa rumah dan pemiliknya ingin menyewakan rumah, tetapi baik penyewa maupun pemilik tidak punya banyak waktu untuk menemukan rumah atau menunggu seseorang melihat rumah di rumah, jadi mereka pergi untuk menemukan agen real estat bersama. Tuan tanah mempercayakan kamar ke agen untuk menyewa dan menjual. Ketika ada orang yang cocok, agen akan mengambil kamar untuk melihatnya dan membayar uang untuk menyewanya, sehingga pemilik akan menyewakan kamar; Penyewa mempercayakan DPR ke agensi untuk membantu lokasi kamar yang dibutuhkan oleh agensi. Setelah agen menemukan penyewa, keduanya akan membayar uang untuk menyewanya, sehingga penyewa dapat menyewakannya ke tempat dia tinggal;
Kode Sumber Contoh
Ikuti contoh di atas untuk dicapai;
1. Kategori sewa pemilik;
Salinan kode adalah sebagai berikut:
fungsi fangdong () {
this.room = 'nama kamar';
}
Fangdong.prototype.chuzu = function () {
Console.log ('LandHolder Rents Room:' + this.room);
}
2. Kelas agen perantara:
Salinan kode adalah sebagai berikut:
function proxy () {
this.fangdong = fangdong baru ();
}
Proxy.prototype.chuzu = function () {
this.fangdong.chuzu ();
Console.log ('Membawa Biaya Agen Setelah Menyewa');
}
3. Cara menggunakan:
Salinan kode adalah sebagai berikut:
// Penyewa meminta agen untuk membantu menemukan rumah;
var proxy = proxy baru ();
proxy.chuzu ();
Lihatlah penggunaan di atas. Kelas proxy tidak tersedia sama sekali di sisi klien. Cukup gunakan kelas proxy, yang dapat digunakan dengan baik dalam skenario di mana proses logika bisnis tertentu perlu dilindungi; Menggunakan mode proxy dapat digunakan dengan baik di kelas proxy yang perlu dilindungi;
Instruksi lainnya
Seperti mode dekorator, mode proxy juga mencerminkan prinsip pemikiran keterbukaan yang berorientasi objek untuk modifikasi ekstensi dan penutupan;
Mode proxy, Anda dapat menggunakan antarmuka atau kelas abstrak untuk mengatur antarmuka umum: (berikut ini menyediakan mode proxy java)
1. Metode abstrak kelas abstrak;
Salinan kode adalah sebagai berikut:
rumah kelas abstrak publik {
public void abstrak chuzu ();
}
Kelas publik Fangdong meluas ke rumah {
Private String Room = "Nama Kamar";
@Mengesampingkan
public void chuzu () {
System.out.println (kamar);
}
}
Proxy kelas publik meluas ke rumah {
Private Fangdong Fangdong;
proxy publik () {
this.fangdong = hangdong baru ();
}
@Mengesampingkan
public void chuzu () {
this.fandong.chuzu ();
System.out.println ("Biaya Bayar Agen Setelah Menyewa");
}
}
//menggunakan
Rumah rumah = proxy baru ();
house.chuzu ();
2. Metode Antarmuka:
Salinan kode adalah sebagai berikut:
rumah antarmuka {
public void chuzu ();
}
Fangdong kelas publik mengimplementasikan rumah {
Private String Room = "Nama Kamar";
@Mengesampingkan
public void chuzu () {
System.out.println (kamar);
}
}
Proxy kelas publik mengimplementasikan rumah {
Private Fangdong Fangdong;
proxy publik () {
this.fangdong = hangdong baru ();
}
@Mengesampingkan
public void chuzu () {
this.fandong.chuzu ();
System.out.println ("Biaya Bayar Agen Setelah Menyewa");
}
}
//menggunakan
Rumah rumah = proxy baru ();
house.chuzu ();