2010-09-22 27 views

Respuesta

7

servidores se usa típicamente para los siguientes escenarios:

  • basa en el objetivo 'real' es costoso crear. Luego, el proxy será un marcador de posición mientras se crea (un icono de la barra de progreso mientras se descarga una imagen enorme es un ejemplo típico). Lazy-loading es otro ejemplo típico. La idea es que no sabemos si el usuario alguna vez hará clic en el panel "Detalles", por lo que pospondremos la carga hasta que realmente haga clic o el sistema esté inactivo.
  • Desea controlar el acceso (SecurityProxy) a algunos oa todos los miembros del objeto 'real' dentro del proxy.

Los adaptadores desempeñan un papel más: cierran la brecha entre dos clases que no tienen relación. El adaptador puede actuar como ambos objetos. Esto se usa principalmente cuando uno tiene que integrarse con sistemas heredados (o marcos de terceros para el caso) donde no es posible alterar la API.

Espero que esto ayude!

16

Un proxy expone exactamente el mismo comportamiento que el objeto que oculta. Por lo general, un proxy se usa para contactar un objeto remoto sin tener que saber cómo contactarlo. Un ejemplo es un servicio WCF, puede encapsular el acceso al servicio en un proxy que expone exactamente la misma interfaz que el servicio wcf, pero oculta los detalles de implementación, como usar un canal de televisión y manejar las malas comunicaciones, etc ... Es como si su cliente estuviera hablando al servicio de WCF localmente.

Un adaptador también oculta un objeto subyacente, pero transforma los datos que usted intercambia con el formato y el contenido correctos utilizados por el objeto subyacente. Un ejemplo es, de hecho, un sistema heredado, como dice Goblin. Encapsula la complejidad de hablar con el sistema heredado (tal vez utiliza una API conversátil o CRUDy y desea ocultarlo detrás de una operación de granularidad gruesa) en un adaptador para proporcionar una forma sencilla de hablar con el sistema heredado a sus clientes.

Así es como lo entiendo al menos.

EDITAR: por cierto, personalmente creo que no tiene que ver los nombres de patrones de diseño como el fin de todo. Elija el patrón correcto en función de lo que desea lograr y llámelo como lo desee.

Cuestiones relacionadas