Mod agensi: Proksi statik
Kadangkala, kita mungkin tidak mahu berhadapan dengan sesuatu atau seseorang secara langsung, jadi kita boleh mencari perantara Go dan melakukan sesuatu untuk kita, seperti menghantar hadiah, menelefon untuk urusan, mencari tukang cuci untuk pergi ke bandar tertentu, dsb. Dengan cara ini, pihak lain tidak tahu siapa yang terlibat di sebalik pengantara, dan ia memainkan peranan sebagai perantara dan melindungi objek sasaran. Ini adalah model agensi. Maksudnya, seorang perantara melakukannya untuk anda.
1. Definisi mod proksi
Atas sebab tertentu, adalah perlu untuk menyediakan proksi untuk objek untuk mengawal akses kepada objek. Pada masa ini, objek capaian tidak sesuai atau tidak boleh merujuk secara langsung objek sasaran, dan objek proksi bertindak sebagai perantara antara objek capaian dan objek sasaran
Rajah struktur ringkas:
2 Kebaikan dan keburukan model proksi
Kelebihan:
1 antara klien dan objek sasaran. Peranan melindungi objek sasaran
2 Ia boleh mengembangkan fungsi objek sasaran
3. yang mengurangkan gandingan sistem pada tahap tertentu dan meningkatkan kerumitan program
Kelemahan:
1. Ia akan menyebabkan bilangan kelas dalam sistem reka bentuk untuk meningkat (kerana terdapat satu atau lebih kelas perantara (ejen))
2. Menambah objek proksi antara klien dan objek sasaran akan memperlahankan kelajuan pemprosesan permintaan
3. Meningkatkan kerumitan sistem
3 Klasifikasi Proksi bagi corak
Corak proksi dibahagikan kepada proksi statik (artikel ini) dan proksi dinamik (seterusnya artikel) :
Statik: Pengaturcara mencipta kelas proksi atau alat tertentu secara automatik menjana kod sumber dan kemudian menyusunnya daripada kelas proksi sudah wujud sebelum atur cara dijalankan
Dinamik: Dicipta secara dinamik menggunakan mekanisme pantulan semasa atur cara berjalan
4. Struktur mod proksi statik
1 Kelas tema abstrak: mengisytiharkan kaedah perniagaan yang dilaksanakan oleh tema sebenar dan objek proksi melalui antara muka atau kelas abstrak
2. Kelas tema sebenar: melaksanakan tema abstrak Perniagaan khusus ialah objek sebenar yang diwakili oleh objek proksi, yang merupakan objek akhir untuk dirujuk
3 . Kelas proksi: menyediakan antara muka yang sama seperti topik sebenar, dan mengandungi rujukan dalaman kepada Rujukan topik sebenar, yang boleh mengakses, mengawal atau melanjutkan fungsi tema sebenar
Pertunjukan kod :
Tentukan tema abstrak:
Apabila menggunakan proksi statik, anda perlu menentukan antara muka atau kelas induk, dan objek proksi dan objek proksi melaksanakan antara muka yang sama atau mewarisi kelas induk yang sama
/** *抽象主题 */ public interface Subject { void Request(); }
Topik sebenar:
/** *真实主题类:实现抽象主题 */ public class RealSubject implements Subject{ @Override public void Request() { System.out.println("您的航班正在飞行"); } }
Kelas proksi:
//代理类,实现抽象类的接口 public class Proxy implements Subject{ private RealSubject realSubject; @Override public void Request() { //先判断是否存在真实主题RealSubject //如果没有,就新建一个 if(realSubject == null){ realSubject = new RealSubject(); } //预处理,使用这个方法 preRequest(); //去访问真实主题类的方法 realSubject.Request(); //代理类的后续方法 postRequest(); } private void preRequest() { System.out.println("航班马上起飞啦"); } private void postRequest() { System.out.println("航班到达目的地,感谢乘坐"); } }
Kelas ujian:
public class Test { public static void main(String[] args) { //使用代理去访问RealSubject里面的Request Proxy proxy = new Proxy(); proxy.Request(); } }
Keputusan Output:
Penerbangan akan berlepas tidak lama lagi
Penerbangan anda sedang terbang
Penerbangan telah tiba di destinasi, terima kasih kerana mengambilnya
Melalui demonstrasi di atas, Gunakan kelas proksi untuk mengakses kaedah kelas subjek sebenar, supaya kelas ujian tidak tahu siapa yang mengaksesnya, sama ada kelas proksi atau ada orang lain di belakang kelas proksi, supaya objek itu boleh dilindungi dengan baik. Ini juga merupakan kelebihan model agensi.
Ringkasan proksi statik:
Anda boleh melanjutkan fungsi sasaran tanpa mengubah suai fungsi objek sasaran, tetapi objek proksi perlu sama dengan objek sasaran, jadi akan terdapat banyak kelas proksi Apabila terdapat banyak kelas proksi, kerumitan penyelenggaraan akan menjadi lebih besar. Kemudian anda perlu menggunakan proksi dinamik.
5. Senario aplikasi mod proksi
Apabila anda tidak boleh atau tidak mahu merujuk secara langsung objek atau terdapat kesukaran untuk mengakses objek, anda boleh mengaksesnya secara tidak langsung melalui objek proksi. Terdapat dua tujuan utama menggunakan mod proksi: Satu adalah untuk melindungi objek sasaran, dan satu lagi adalah untuk meningkatkan objek sasaran
Ringkasan senario aplikasi ini ialah dirujuk daripada Internet:
Proksi jauh, kaedah ini biasanya digunakan untuk menyembunyikan fakta bahawa objek sasaran wujud dalam ruang alamat yang berbeza untuk memudahkan akses pelanggan. Sebagai contoh, apabila pengguna memohon beberapa ruang cakera rangkaian, cakera keras maya akan dibuat dalam sistem fail pengguna Apabila pengguna mengakses cakera keras maya, dia sebenarnya mengakses ruang cakera rangkaian
. ejen maya , kaedah ini selalunya digunakan apabila objek sasaran yang hendak dibuat mahal. Sebagai contoh, jika mengambil masa yang lama untuk memuat turun imej yang besar, dan beberapa pengiraan adalah rumit dan tidak dapat diselesaikan dalam masa yang singkat, anda boleh menggantikan objek sebenar terlebih dahulu dengan ejen maya berskala kecil untuk menghapuskan perasaan pengguna bahawa pelayan lambat
Proksi keselamatan, kaedah ini biasanya digunakan untuk mengawal hak akses pelbagai jenis pelanggan kepada objek sebenar
Panduan pintar digunakan terutamanya untuk menambah beberapa fungsi pemprosesan tambahan pada proksi apabila memanggil objek sasaran. Sebagai contoh, tambahkan fungsi mengira bilangan rujukan kepada objek sebenar, supaya apabila objek tidak dirujuk, ia boleh dilepaskan secara automatik
Lazy loading merujuk kepada melambatkan pemuatan daripada objek sebenar untuk meningkatkan prestasi pemuatan Sasaran. Contohnya, Hibernate mempunyai pemuatan malas atribut dan pemuatan malas jadual berkaitan
Atas ialah kandungan terperinci Cara memahami mod proksi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.