Maison > interface Web > js tutoriel > Introduction au modèle proxy des modèles de conception JavaScript_compétences Javascript

Introduction au modèle proxy des modèles de conception JavaScript_compétences Javascript

WBOY
Libérer: 2016-05-16 16:24:08
original
1187 Les gens l'ont consulté

Description du mode proxy

Remarque : comme son nom l'indique, une classe est utilisée pour remplacer une autre classe pour exécuter des fonctions de méthode. Ce mode est quelque peu similaire au mode de décoration. La différence est que le mode proxy initialise la classe d'objet proxy au nom du client. , tandis que le mode décoration utilise une interface ou La référence initiale du paramètre décorateur est utilisée pour l'exécution.

Dans les langages dynamiques orientés objet, le mode proxy non seulement contrôle et modifie la classe proxy, mais cache et protège également entièrement la classe proxy ; la classe proxy n'est qu'indirectement initialisée et appelée lorsque nous en avons besoin ;

Description de la scène :

Un exemple très courant est le cas de la location d'une maison. Le locataire veut louer une maison et le propriétaire veut la louer. Cependant, ni le locataire ni le propriétaire n'ont le temps de chercher une maison ou d'attendre quelqu'un. pour voir la maison à la maison, alors ils vont ensemble dans une agence immobilière. Le propriétaire confie la chambre à un agent intermédiaire pour la location et la vente. Lorsqu'une personne appropriée est nécessaire, l'intermédiaire fera visiter la chambre et paiera la location. Cela aidera le propriétaire à louer la chambre confiée par le locataire. remplir les conditions de localisation de la chambre exigées par l'agent. Une fois que l'agence a aidé le locataire à trouver une chambre partagée, les deux paient pour la louer, louant ainsi une place pour le locataire

;

Exemple de code source

Suivez l'exemple ci-dessus ;

1. Location par le propriétaire ;


Copier le code Le code est le suivant :

fonction Fangdong() {
This.room = 'Nom de la pièce';
>
Fangdong.prototype.chuzu = fonction() {
console.log('Le propriétaire loue la chambre : ' this.room);
>

2. Classe d'agent intermédiaire :

Copier le code Le code est le suivant :

fonction Proxy() {
This.fangdong = new Fangdong();
>

Proxy.prototype.chuzu = function() {
This.fangdong.chuzu();
console.log('Des frais d'agence seront facturés après la location');
>

3. Comment utiliser :


Copier le code Le code est le suivant :

//Le locataire demande à l'agent de l'aider à trouver une maison ;
var proxy = nouveau proxy();
proxy.chuzu();

Regardez l'utilisation ci-dessus, la classe proxy n'est pas du tout nécessaire côté client, utilisez simplement la classe Proxy, qui peut très bien être utilisée dans les scénarios où certains processus de logique métier doivent être protégés en utilisant le mode proxy ; , cela peut être facilement Une bonne protection nécessite des classes proxy protégées

Autres consignes

Semblable au modèle décorateur, le modèle proxy incarne également bien le principe de la pensée orientée objet qui est ouverte à l'extension et fermée à la modification
; Mode proxy, vous pouvez utiliser des interfaces ou des classes abstraites pour standardiser les interfaces communes : (le mode proxy JAVA est fourni ci-dessous)

1. Méthode abstraite de classe abstraite ;


Copier le code Le code est le suivant :

classe abstraite publique Maison {
Chuzu abstrait public vide ();
>

classe publique Fangdong agrandit la maison {
Salle de chaîne privée = « Nom de la salle » ;
@Override
Public vide chuzu() {
System.out.println(room);
>
>

Le proxy de classe publique étend la maison {
Soldat Fangdong Fangdong ;
Proxy public() {
This.fangdong = new Hangdong();
>
@Override
Public vide chuzu() {
This.fandong.chuzu();
System.out.println("Payer les frais d'agence après la location");
>
>

//Utiliser
Maison maison = nouveau Proxy();
maison.chuzu();

2. Mode d'interface :

Copier le code Le code est le suivant :

interface Maison {
    public void chuzu();
>

classe publique Fangdong implémente House {
    salle de cordes privée = « 房间名称 »;
    @Override
    public void chuzu() {
        System.out.println(room);
    >
>

Le proxy de classe publique implémente House {
    privé Fangdong fangdong;
    Proxy public() {
        this.fangdong = nouveau Hangdong();
    >
    @Override
    public void chuzu() {
        this.fandong.chuzu();
        System.out.println(«出租后交中介费»);
    >
>

//使用
Maison maison = nouveau Proxy();
maison.chuzu();

É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