1. Konsep model agensi
Nota: Seperti namanya, satu kelas digunakan untuk menggantikan kelas lain untuk melaksanakan fungsi kaedah Mod ini agak serupa dengan mod hiasan Perbezaannya ialah mod proksi memulakan kelas objek proksi bagi pihak klien , manakala mod hiasan menggunakan antara muka atau Rujukan parameter penghias awal digunakan untuk melaksanakan.
Penjelasan: Agensi hartanah boleh membantu penjual menjual rumah kepada pembeli Di tengah-tengah, penjual boleh menentukan harga jualan juga boleh mencadangkan jenis rumah yang ingin dibeli, dan pengantara boleh membantu mengendalikan langkah perantaraan. Akhirnya perjanjian dibuat. Perantara boleh bertindak sebagai ejen untuk banyak jualan dan penyewaan rumah pada masa yang sama.
2. Peranan dan langkah berjaga-jaga mod proksi
Fungsi mod:
1. Proksi jauh (satu objek objek proksi setempat dalam ruang yang berbeza)
2. Proksi maya (buat objek mahal seperti yang diperlukan, seperti menggantikan sementara imej sebenar dengan ruang letak semasa memaparkan halaman web)
3. Ejen keselamatan (mengawal hak akses kepada objek yang disahkan)
4. Bimbingan pintar (memanggil ejen objek untuk mengendalikan perkara lain seperti mekanisme pengumpulan sampah)
Nota:
1 Jangan menyalahgunakan proksi, kadangkala ia hanya menambahkan kerumitan pada kod
3. Kod mod ejen dan ringkasan praktikal
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script> //代理模式需要三方 //1.买家 function maijia(){ this.name = "小明"; this.money = "30万"; } //2.中介 function zhongjie(){ } zhongjie.prototype.maifang = function(){ //new fongdong(new maijia()).maifang("20万"); new fongdong(new maijia()).maifang("20万"); } //3.卖家 function fongdong(maijia){ this.maijia_name = maijia.name; this.maijia_money = maijia.money; this.maifang = function(money){ // alert("收到了来自【"+this.maijia_name+"】"+money+"人民币"); alert("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币"); } } (new zhongjie()).maifang(); </script> <script> // A2B function A(){ this.money = "20RMB"; } function to(){ if(!(this instanceof to)){ return new to; } } to.prototype.maifang = function(){ var a = new A(); new B().maifang(a.money); } function B(){ this.maifang = function(money){ alert("收到了钱"+money); } } (new to()).maifang(); to().maifang(); </script> </body> </html>