Este patrón consiste en interponer un intermediario (Proxy) entre un
objeto y los demás que lo utilizan. Se diferencia del patrón Adaptador en que
el objeto "adaptado" solamente puede ser manipulado a través del
objeto Proxy. Se suele utilizar para implementar comportamientos
"vagos" (lazy). Por ejemplo, si tenemos muchos objetos imagen en un
documento, se tardaría mucho tiempo en abrir el documento al cargar las
imágenes de disco. Para evitarlo podemos sustituir los objetos imagen por
objetos proxyImagen, con el mismo interfaz, pero que solamente cargan la imagen
cuando se va a visualizar. Debemos insistir en dos aspectos que caracterizan el
patrón Proxy:
- El objeto Apoderado tiene el
mismo interfaz que el objeto "Protegido". Para facilitar esto se
puede derivar el objeto Apoderado de la misma clase padre que el objeto
"Protegido", pero no es absolutamente necesario.
- El objeto
"Protegido" solamente puede ser manipulado por su
correspondiente Apoderado.
Un ejemplo típico de
aplicación del patrón proxy es el de un editor de documentos. El editor podrá
incluir imágenes y dibujos complejos, y se plantea el problema de recuperar
todos estos costosos objetos cada vez que se abre el documento. La aplicación
del patrón proxy soluciona el problema definiendo un "representante",
que ocupe su lugar, hasta que sea necesario cargarlos.
Ejemplo 2 – Saludar o despedirse de una persona.
0 comentarios :
Publicar un comentario