Maison > Java > javaDidacticiel > le corps du texte

Procuration

Susan Sarandon
Libérer: 2024-09-22 22:15:41
original
390 Les gens l'ont consulté

Procuration

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();
    }
}
Copier après la connexion

Sortie :

Loading image wallpaper.png from disk
Rendering image : wallpaper.png
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal