Quelle est la différence exacte entre les modèles D'adaptateur et de Proxy?

comme j'ai compris à la fois Adaptateur et mandataire motifs font deux classes/objets distincts/différents compatibles avec chacun pour la communication. Et les deux sont des modèles structuraux . Je comprends que les deux se ressemblent.

est-ce que quelqu'un peut expliquer ce qui les rend exactement différents?

EDIT: Je suis passé par ce question. Mais je préférerais avoir une comparaison étroite entre adaptateur et Proxy.

5
demandé sur Community 2016-06-08 06:38:43

3 réponses

"Adaptateur:

  1. il permet à deux interfaces indépendantes de travailler ensemble à travers les différents objets, jouant peut-être le même rôle.
  2. il modifie l'interface originale.

diagramme UML:

enter image description here

, Vous pouvez trouver plus de détails sur ce modèle avec exemple de code de travail dans ce message SE:

différence entre le dessin de pont et le dessin D'Adaptateur

"Proxy:

Proxy fournir un substitut ou titulaire de place pour un autre objet pour en contrôler l'accès.

diagramme UML:

enter image description here

Il existe des situations courantes dans lesquelles le modèle de procuration s'applique.

  1. Un proxy virtuel est une place de titulaire pour le "cher à créer" des objets. L'objet réel est créé lorsqu'un client demande tout d'abord/accède à l'objet.
  2. Un remote proxy fournit un représentant local pour un objet qui réside dans un autre espace d'adressage. C'est ce que fournit le code" stub " dans RPC et CORBA.
  3. Un protection proxy contrôle l'accès à une sensible maître de l'objet. L'objet "de substitution" vérifie que l'appelant a les permissions d'accès requises avant de transmettre la demande.
  4. A Smart Proxy fournit un accès sophistiqué à certains objets tels que le suivi du nombre de références à un objet et le refus d'accès si un certain nombre est atteint, ainsi que le chargement d'un objet à partir de la base de données en mémoire sur demande

Pour le code de travail, avoir un regard sur tutorialspoint article sur le Proxy.

principales différences:

  1. adaptateur fournit une interface différente à son sujet. Proxy fournit la même interface
  2. L'adaptateur est destiné à changer l'interface d'un objet existant

vous pouvez trouver plus de détails sur ces modèles dans les articles de proxy et adaptateur articles.

Autres articles utiles: proxy par dzone

10
répondu Ravindra babu 2017-05-23 12:09:44

à Partir de ici :

Adaptateur fournit une interface différente à son sujet. Proxy fournit la même interface.

vous pourriez penser à un adaptateur comme quelque chose qui devrait rendre une chose compatible avec une autre qui est incompatible si connecté directement. Lorsque vous voyagez à l'étranger, par exemple, et besoin d'un adaptateur de prise électrique.

maintenant un mandataire est un objet du même interface, et éventuellement la même classe de base (ou une sous-classe). Il ne fait que "feindre" d'être (et se comporte comme) l'objet réel, mais transmet plutôt le comportement réel (calculs, traitement, accès aux données, etc.) à un sous-jacent, de l'objet référencé.

d'Extrapoler à l'analogie électrique, il serait bien que l'utilisation d'un adaptateur est visible pour le client, le client "sait", un adaptateur est utilisé, tandis que l'utilisation d'un proxy peut le plus souvent être caché, ou "transparent" - le client pense qu'un objet réel est utilisé, mais c'est seulement un proxy.

2
répondu heltonbiker 2016-06-08 04:06:29

différence entre le motif de L'adaptateur et le motif du mandataire

MODÈLE D'ADAPTATEUR

  1. chargeur mobile indien (CLIENT) ne rentre pas dans USA switch board (serveur).
  2. vous avez besoin d'utiliser l'adaptateur pour que le chargeur mobile indien (CLIENT) puisse s'adapter à USA switch board (serveur).
  3. du point 2, Vous pouvez comprendre que le CLIENT adaptateur directement. Puis adaptateur contacts serveur.

MODÈLE DE PROXY

  • le client contacte directement l'adaptateur. Il n'a pas de contacter le serveur.
  • dans proxy pattern, proxy et server implémentent la même interface. Le Client appellerait la même interface.

UNDERSTANDING THROUGH CODE

class client{
    public void main(){
      //proxy pattern
      IServer iserver = new proxy();
      iserver.invoke();

      //adapter pattern
      IAdapter iadapter = new adapter();
      iserver.iadapter();
    }
}

class server implements IServer{
    public void invoke(){}
}

class proxy implments IServer{
  public void invoke(){}
}

class adapter implements IAdapter{
  public void invoke(){}
}

référence: différence entre le motif de L'adaptateur et le motif du mandataire

0
répondu Siddarth Kanted 2018-01-25 11:47:57