Proksi ialah salah satu corak reka bentuk struktur, Ia digunakan untuk mencipta objek pengganti atau pemegang tempat, yang digunakan untuk mengawal akses objek asal.
Ia bertindak sebagai perantara yang menambahkan tahap kawalan tambahan dan boleh melakukan tindakan tambahan sebelum dan selepas mewakilkan permintaan kepada objek sebenar.
Konsep Utama:
Objek Proksi: Mewakili objek sebenar dan mengawal akses kepadanya.
Objek Sebenar (Subjek): Objek sebenar yang melakukan kerja.
Pelanggan: Entiti yang berinteraksi dengan proksi dan bukannya objek sebenar secara langsung.
Mari fahami ini dengan mengambil contoh Imej.
//Object interface public interface Image{ public void display(); } //Real object public class RealImage implements Image { private String file; public RealImage(String fileName){ this.file = fileName; loadImageFromDisk(); } @Override public void display(){ System.out.println("Rendering image : "+ file); } private void loadImageFromDisk(){ System.out.println("Loading image "+file+" from disk"); } } //proksi class public class proksiImage implements Image { private Image image; private String file; public proksiImage(String fileName){ this.file =fileName; } @Override public void display(){ if(image ==null){// create object of RealImage only if the image reference is null, thus resulting in LazyIntialization //( i.e. Initializing the object only when it is needed not beforehand) image = new RealImage(file); } image.display(); } } // client public class Main { public static void main(String args[]){ Image image = new proksiImage("wallpaper.png"); //image is loaded and displayed for the first time image.display(); //image will not be loaded again, only display will be called image.display(); } }
Output:
Loading image wallpaper.png from disk Rendering image : wallpaper.png
Kes Penggunaan:
Permulaan malas: Menangguhkan penciptaan objek sehingga ia benar-benar diperlukan.
Kawalan akses: Mengehadkan akses kepada kaedah tertentu berdasarkan peranan atau kebenaran pengguna.
Pengelogan: Menambahkan fungsi pengelogan atau pemantauan.
Atas ialah kandungan terperinci proksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!