Le proxy est l'un des modèles de conception structurelle. Il est utilisé pour créer un objet de substitution ou d'espace réservé, qui est utilisé pour contrôler l'accès à l'objet d'origine.
Il agit comme un intermédiaire ajoutant un niveau de contrôle supplémentaire et peut effectuer des actions supplémentaires avant et après la délégation de la demande à un objet réel.
Concepts clés :
Objet proxy : représente l'objet réel et contrôle l'accès à celui-ci.
Objet réel (Sujet) : L'objet réel qui fait le travail.
Client : L'entité qui interagit directement avec le proxy au lieu de l'objet réel.
Comprenons cela en prenant un exemple d'image.
//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"); } } //Procuration class public class ProcurationImage implements Image { private Image image; private String file; public ProcurationImage(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 ProcurationImage("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(); } }
Sortie :
Loading image wallpaper.png from disk Rendering image : wallpaper.png
Cas d'utilisation :
Initialisation paresseuse : retarder la création d'un objet jusqu'à ce qu'elle soit absolument nécessaire.
Contrôle d'accès : restreindre l'accès à des méthodes spécifiques en fonction des rôles ou des autorisations des utilisateurs.
Logging : Ajout de fonctionnalités de journalisation ou de surveillance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!