Mod proksi memainkan peranan penting dalam pembangunan perisian secara tidak langsung boleh menghubungkan pelanggan dengan objek yang sebenarnya mengendalikan permintaan, menjadikan perisian yang direka dengan cara ini lebih fleksibel dan berskala. Dalam artikel ini, kami akan melaksanakan corak proksi mudah melalui bahasa golang.
Apakah mod proksi?
Corak proksi ialah corak reka bentuk struktur yang menambahkan lapisan proksi antara objek proksi dan objek sebenar Lapisan proksi boleh mengawal akses kepada objek sebenar. Tujuan mod proksi adalah untuk menyediakan kawalan akses dan kawalan operasi yang lebih baik kepada pelawat.
Dalam corak proksi, objek proksi mempunyai antara muka yang sama dengan objek sebenar, jadi ia boleh digantikan antara satu sama lain. Pada masa yang sama, objek proksi juga perlu melaksanakan beberapa fungsi tambahan, yang boleh dicetuskan sebelum atau selepas mengakses objek sebenar.
Kelebihan mod proksi ialah:
Kelemahan corak proksi ialah:
Bagaimana untuk melaksanakan mod proksi?
Pelaksanaan corak proksi boleh dibahagikan kepada dua langkah: pertama, cipta objek proksi, dan kemudian panggil kaedah objek sebenar dalam objek proksi.
Dalam golang, kita boleh menggunakan antara muka untuk merealisasikan hubungan antara objek proksi dan objek sebenar. Langkah-langkah pelaksanaan khusus adalah seperti berikut:
Pertama, kita perlu mencipta antara muka, yang mengandungi kaedah yang objek sebenar perlu dilaksanakan, dan kaedah yang perlu dipanggil oleh objek proksi .
type Subject interface { Do() string }
Seterusnya, kami mencipta objek sebenar yang melaksanakan kaedah antara muka yang dinyatakan sebelum ini.
type RealSubject struct {} func (*RealSubject) Do() string { return "RealSubject" }
Seterusnya, kami mencipta objek proksi ini perlu mempunyai penunjuk ke objek sebenar supaya ia boleh memanggil objek sebenar apabila diperlukan.
type ProxySubject struct { realSubject *RealSubject } func (p *ProxySubject) Do() string { if p.realSubject == nil { p.realSubject = &RealSubject{} } result := "Pre-Handler " result += p.realSubject.Do() + " " result += "Post-Handler " return result }
Dalam objek proksi ini, kita perlu menentukan sama ada objek sebenar sudah wujud Jika ia tidak wujud, kita perlu menciptanya terlebih dahulu. Kemudian, kami menambah prapemproses sebelum memanggil kaedah objek sebenar, dan pascapemproses selepas memanggil kaedah objek sebenar.
Akhir sekali, kami menulis kod ujian untuk mengesahkan sama ada corak proksi dilaksanakan dengan betul.
func main() { var subject Subject subject = &ProxySubject{} result := subject.Do() fmt.Println(result) }
Dalam kod ujian ini, kami mencipta objek proksi dan menghalakannya ke objek sebenar. Kemudian kita memanggil kaedah Do() objek proksi Dengan memerhatikan hasil keluaran, kita boleh membuat kesimpulan bahawa pelaksanaan corak proksi adalah betul.
Ringkasan
Melalui artikel ini, kami memahami definisi dan prinsip kerja corak proksi, dan melaksanakan corak proksi mudah melalui bahasa golang. Dalam pembangunan sebenar, mod proksi digunakan secara meluas, seperti proksi caching, proksi keselamatan, proksi maya, dsb. Oleh itu, pemahaman yang mendalam tentang penggunaan dan ciri-ciri corak proksi boleh membolehkan kami bertindak balas dengan lebih baik kepada keperluan dan cabaran dalam pembangunan sebenar.
Atas ialah kandungan terperinci Pelaksanaan golang mod proksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!