Maison > Java > javaDidacticiel > le corps du texte

Le rôle du modèle proxy dans les modèles de conception

零下一度
Libérer: 2017-06-25 13:38:38
original
2375 Les gens l'ont consulté

1. Le rôle du mode proxy

Le rôle du mode proxy est de fournir un proxy aux autres objets pour contrôler l'accès à cet objet.

Dans certains cas, un client ne veut pas ou ne peut pas référencer directement un autre objet, et un objet proxy peut agir comme intermédiaire entre le client et l'objet cible.

2. Rôles généralement impliqués dans le modèle proxy

Rôle abstrait : déclare l'interface commune entre les objets réels et les objets proxy.

Rôle proxy : Le rôle d'objet proxy contient une référence à l'objet réel en interne, afin que l'objet réel puisse être manipulé en même temps, l'objet proxy fournit la même interface que. l'objet réel afin qu'il puisse remplacer l'objet réel à tout moment. Dans le même temps, l'objet proxy peut ajouter d'autres opérations lors de l'exécution d'opérations sur l'objet réel, ce qui équivaut à encapsuler l'objet réel.

Rôle réel : L'objet réel représenté par le rôle proxy est l'objet que nous voulons finalement référencer.

Illustration : Le programme suivant utilise un proxy statique pour implémenter une fonction de conversion de lettres majuscules.

Classe d'interface ISomeService :

package com.ietree.basicskill.designpattern.staticproxy;/**
 * 接口类
 * 
 * @author Root */public interface ISomeService {
    
    String doFirst();    void doSecond();
}
Copier après la connexion

Classe d'implémentation SomeServiceImpl :

package com.ietree.basicskill.designpattern.staticproxy;/**
 * 实现类
 * 
 * @author Root */public class SomeServiceImpl implements ISomeService {

    @Overridepublic String doFirst() {
        System.out.println("执行doFirst()...");
        String result = "abcde";return result;
    }

    @Overridepublic void doSecond() {
        System.out.println("执行doSecond()...");
    }

}
Copier après la connexion

Classe proxy SomeServiceProxy :

  SomeServiceProxy =
Copier après la connexion

Classe de test Principal :

package com.ietree.basicskill.designpattern.staticproxy;public class Main {public static void main(String[] args) {        ISomeService service = new SomeServiceProxy();String result = service.doFirst();
        System.out.println(result);
        
        service.doSecond();
    }
}
Copier après la connexion

Résumé

Si vous souhaitez suivre la méthode ci-dessus ( proxy statique ) en utilisant le modèle de proxy, alors le rôle réel doit déjà être implémenté et en tant que propriété interne de l'objet proxy.

Mais dans l'utilisation réelle, un rôle réel doit correspondre à un rôle de proxy, mais s'il est utilisé en grande quantité, cela entraînera une expansion rapide de la classe en plus, si le rôle réel n'est pas connu dans ; avance, comment utiliser le proxy ? Ce problème peut être résolu par la classe proxy dynamique de Java.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal