SlideShare une entreprise Scribd logo
1  sur  12
Patrones de diseño
proxy
[Escriba el subtítulo del documento]

Alumnos:
ARELLANO TEJADA, PABLO CESAR
HERNANDEZ VALDERRAMA, SERGIO R.
TORRES GONZALES, MARCO ANTONIO.

Curso:
TÓPICOS ESPECIALES EN INGENIERIA DE
SOFTWARE.

2014
Patrones de diseño proxy

2014

DEDICATORIA

Principalmente dedicamos este trabajo a nuestros padres puesto
que nos brindaron apoyo y fortaleza en el desarrollo y transcurso
de este, ayudándonos a concluir satisfactoriamente nuestro
proyecto.
Dedicamos a Dios puesto que nos brinda sabiduría, amor y
paciencia, nos ayuda en los momentos más difíciles brindándonos
valores que nos fortalezcan no solo como trabajo de grupo, si no
como personas.
También dedicamos a nuestro Profesor del curso quien nos dio
su sabiduría para la elaboración total de nuestra monografía
asiendo así posible el desarrollo totalmente de este.

1

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

Índice
1.

INTRODUCCIÓN .................................................................................... 3

2.

MARCO TEÓRICO. ................................................................................. 4

3.

DEFINICIONES....................................................................................... 5

4.

MOTIVACION ......................................................................................... 5

5.

USOS DEL PATRÓN PROXY ................................................................... 6

6.

ESTRUCTURA DE LA SOLUCION (DIAGRAMA DE CLASES) ..................... 6

7.

PARTICIPANTES .................................................................................... 7

8.

COLABORACIONES (DIAGRAMA DE SECUENCIA) .................................. 7

10.

CONCLUSIONES FINALES ................................................................. 10

11.

BIBLIOGRAFIA .................................................................................. 11

2

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

1. INTRODUCCIÓN

El presente documento aborda uno de los patrones estructurales del grupo de los cuatro
(GOF), el patrón Proxy, el cual según Eric Gamma su propósito es proporcionar un
sustituto de un determinado objeto para controlar el acceso a dicho objeto.
También esta investigación presenta la problemática a la cual es aplicable y la solución
que propone el patrón estructural Proxy incluyendo diagramas de clases y abordamos la
responsabilidad de que este debe de realizar. Asimismo se muestra el código de ejemplo
implementando el patrón estructural.

3

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

2. MARCO TEÓRICO.

Los patrones de diseño son la base para la búsqueda de soluciones a problemas
comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción
o interfaces.
Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una
solución sea considerada un patrón debe poseer ciertas características. Una de ellas es
que debe haber comprobado su efectividad resolviendo problemas similares en
ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable
a diferentes problemas de diseño en distintas circunstancias.
Los patrones de diseño pretenden:
Proporcionar catálogos de elementos reusables en el diseño de sistemas software.
Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y
solucionados anteriormente.
Formalizar un vocabulario común entre diseñadores.
Estandarizar el modo en que se realiza el diseño
2.1 Principales Patrones GoF (Gang Of Four)
2.1.1 Patrones creacionales
Corresponden a patrones de diseño software que solucionan problemas de
creación de instancias. Nos ayudan a encapsular y abstraer dicha creación:
Object Pool (no pertenece a los patrones especificados por GoF):
Abstract Factory (fábrica abstracta)
Builder (constructor virtual)
Factory Method (método de fabricación)
Prototype (prototipo)
Singleton (instancia única)
2.1.2 Patrones estructurales
Son los patrones de diseño software que solucionan problemas de composición
(agregación) de clases y objetos:
Adapter o Wrapper (Adaptador o Envoltorio)
Bridge (Puente)
Composite (Objeto compuesto)

4

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

Decorator (Decorador)
Facade (Fachada)
Flyweight (Peso ligero)
Proxy: Mantiene un representante de un objeto.
Módulo: Agrupa varios elementos relacionados, como clases, singletons, y métodos,
utilizados globalmente, en una entidad única.

3. DEFINICIONES

Nombre: Patrón Proxy
El patrón Proxy está clasificado dentro de los Patrones Estructurales, es también
conocido como, Embajador, Apoderado (surrogante). Veamos primero su definición:
Un proxy fuerza a que un método de un objeto RealSubject sea indirectamente
ejecutado a través de un objeto Proxy, el cual actúa como delegado o sustituto del objeto
RealSubject. Los objetos Proxy son usualmente declarados sin que el Cliente sepa de
qué se trata de un Objeto Proxy.
Se requiere que las llamadas a métodos de un objeto ocurran indirectamente a través de
un objeto original, delegando luego las llamadas a los métodos de los objetos
respectivos.
El objeto proxy, comparte la misma interfaz o superclase que el objeto delegado.

4. MOTIVACION

Una razón para controlar el acceso a un objeto es retrasar todo el costo de su creación
e inicialización hasta que sea realmente necesario usarlo. Pensemos en un editor de
documentos que puede insertar objetos gráficos en un documento. Algunos de estos
objetos gráficos, como grandes imágenes raster, pueden ser costosos de crear. Sin
embargo abrir un documento debería ser una operación que se efectuase rápidamente,
por lo que debería evitar crear todos los objetos costosos a la vez en cuanto se abra el
documento. Por otro lado, tampoco es necesario, ya que no todos esos objetos serán
visibles al documento al mismo tiempo.
.

5

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

5. USOS DEL PATRÓN PROXY

Control de Acceso: El patrón puede ser usado para controlar el acceso a los
métodos del RealSubject. La lógica del control de acceso se delegará en el
proxy, de esta forma quedará más limpio el RealSubject (en términos de
código).
Acceso a objetos remotos: Representación de un objeto remoto de forma
local, es decir, el Proxy resuelve y enmascara la forma en cómo conectarse al
objeto remoto. Ejemplos de implementación de este patrón los pueden
encontrar en EJB y RMI.
Proxy Virtual: Crea objetos costosos bajo demanda. Por ejemplo, al iniciar
una aplicación se pueden instanciar con este patrón todos los iconos de dicha
aplicación, pero sólo cuando éste sea solicitado realmente ira a buscarlo al
disco y presentado al usuario.
Proxy de Referencia Inteligente: Sustituto de una referencia que hace
operaciones adicionales cuando se accede a un objeto, como por ejemplo,
controlar concurrencia, contar número de instancias, cargar un objeto en
memoria, manejo de cache)

6. ESTRUCTURA DE LA SOLUCION (DIAGRAMA DE CLASES)

Un proxy fuerza a que un método de un objeto RealSubject sea indirectamente
ejecutado a través de un objeto Proxy, el cual actúa como delegado o sustituto del objeto
RealSubject. Los objetos Proxy son usualmente declarados sin que el Cliente sepa que
se trata de un Objeto Proxy.

Diagrama de clases de cómo se implementa este patrón.

6

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

7. PARTICIPANTES

7.1SUBJECT (Graphic):
Interfaz o clase abstracta que proporciona un acceso común al objeto real y su
representante (proxy), de modo que pueda usarse, proxy en cualquier sitio en él se
espere un RealSubject.
7.2 PROXY (ImageProxy):
Mantiene una referencia al objeto real.
Controla la creación y acceso a las operaciones del objeto real.
7.3 REALSUBJECT (Image):
Define el objeto real representado por el proxy.

8.

COLABORACIONES (DIAGRAMA DE SECUENCIA)

El siguiente diagrama de clases que se muestra es cuando se necesita el Objeto
Real y este es instanciado para que se muestre el cliente. Por lo tanto el Proxy
instancia al RealSubject.

7

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

9. IMPLEMENTACION (EJEMPLO)

Partamos con la
SubjectProxy.java

interfaz

que

deben

cumplir

tanto RealSubject como

el

public interface Subject {
void doOperation(String username);
}

Veamos la implementación del RealSubject.java

public classSubjectRealimplements Subject {
@Override
public void doOperation(String username) {
System.out.println("doOperation Real");
}
}
Finalmente la implementación del SubjectProxy.java

8

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

public classSubjectProxyimplements Subject {
private finalSubject _subjectReal;
private boolean_connected= false;
public SubjectProxy() {
_subjectReal= new SubjectReal();
}
@Override
public voiddoOperation(String username) {
// Control de Acceso simple
if (!username.isEmpty() && "admin".equals(username)) {
System.out.println("doOperacion proxied");
if(_connected) {
_subjectReal.doOperation(username);
}
else {
connectToRemote();
_subjectReal.doOperation(username);
}
}
else {
System.out.println("Access Denied");
}
}
private voidconnectToRemote() {
System.out.println("Connecting to remote");
_connected= true;
}
}

Nuestro cliente (quien consumirá a Subject) será SubjectTest.java
publicclassSubjectTest {
public static voidmain(String[] args) {
Subject subjectProxied = new SubjectProxy();
subjectProxied.doOperation("admin");
}
}

9

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

Esto imprimirá lo siguiente en la consola:

La explicación al Access Denied está dada porque el patrón Proxy se utilizó como
control de acceso al método doOperation. Sólo si el username es admin se ejecutará
dicho método

Veamos el Segundo Test
publicclassSubjectTest {
public static voidmain(String[] args) {
Subject subjectProxied = new SubjectProxy();
subjectProxied.doOperation("admin");
}
}
imprimirá lo siguiente en consola:

10. CONCLUSIONES FINALES
Se debe de implementar el patrón proxy cuando haya objetos que tomen mucho
tiempo en cargarse, por ejemplo cargar una imagen que consume demasiada
memoria.
El patrón Proxy proporciona un representante o sustituto de otro objeto para controlar
el acceso a este.
Los patrones de diseño describen la solución a problemas que se repiten una y otra
vez en nuestros sistemas, de forma que se puede usar esa solución siempre que
haga falta.

10

Universidad Nacional de Trujillo – Escuela de informática.
Patrones de diseño proxy

2014

11. BIBLIOGRAFIA
Ian Sommerville, Ingeniería del Software,septima edición, Pearson 2005.
Roger Pressman, Ingeniería del Software un enfoque práctico,quinta edición, Mc
Graw Hill 2002.
http://www.slideshare.net/urumisama/soa-3244791
http://arantxa.ii.uam.es/~eguerra/docencia/0809/12%20Proxy.pdf
http://wikipedia.org/wiki/Proxy_(patron_de_diseño)

11

Universidad Nacional de Trujillo – Escuela de informática.

Contenu connexe

En vedette

Exposicion de patrón de diseño fachada
Exposicion de patrón de diseño fachadaExposicion de patrón de diseño fachada
Exposicion de patrón de diseño fachadajoseph929
 
Jorge lopez web_apps
Jorge lopez web_appsJorge lopez web_apps
Jorge lopez web_appseccutpl
 
Ingeniería Informática
Ingeniería InformáticaIngeniería Informática
Ingeniería Informáticakarnack
 
Arquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosArquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosEventos Creativos
 
Tridimensionalidad Informática en Arquitectura
Tridimensionalidad Informática en ArquitecturaTridimensionalidad Informática en Arquitectura
Tridimensionalidad Informática en ArquitecturaRicardo Cuberos Mejía
 
Housing y Seguridad - Web Hosting en Chile
Housing y Seguridad - Web Hosting en ChileHousing y Seguridad - Web Hosting en Chile
Housing y Seguridad - Web Hosting en ChileHosting y Dominio
 
Diseño de Patrones (Fachada)
Diseño de Patrones (Fachada)Diseño de Patrones (Fachada)
Diseño de Patrones (Fachada)Fanny Ruiz
 
Arquitectura Orientada a Servicios
Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios
Arquitectura Orientada a Serviciosfinger10
 
Arquitectura de seguridad de redes
Arquitectura de seguridad de redesArquitectura de seguridad de redes
Arquitectura de seguridad de redesJuan MmnVvr Aguila
 
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...eccutpl
 
Clase 1 Sistema De Gestion De Base De Datos
Clase 1   Sistema De Gestion De Base De DatosClase 1   Sistema De Gestion De Base De Datos
Clase 1 Sistema De Gestion De Base De Datososwchavez
 
Arquitectura de seguridad de la información (Delima)
Arquitectura de seguridad de la información (Delima)Arquitectura de seguridad de la información (Delima)
Arquitectura de seguridad de la información (Delima)Fluidsignal Group S.A.
 

En vedette (13)

Exposicion de patrón de diseño fachada
Exposicion de patrón de diseño fachadaExposicion de patrón de diseño fachada
Exposicion de patrón de diseño fachada
 
Jorge lopez web_apps
Jorge lopez web_appsJorge lopez web_apps
Jorge lopez web_apps
 
Presetacion redes ip
Presetacion redes ipPresetacion redes ip
Presetacion redes ip
 
Ingeniería Informática
Ingeniería InformáticaIngeniería Informática
Ingeniería Informática
 
Arquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en iosArquitectura, aplicaciones y seguridad en ios
Arquitectura, aplicaciones y seguridad en ios
 
Tridimensionalidad Informática en Arquitectura
Tridimensionalidad Informática en ArquitecturaTridimensionalidad Informática en Arquitectura
Tridimensionalidad Informática en Arquitectura
 
Housing y Seguridad - Web Hosting en Chile
Housing y Seguridad - Web Hosting en ChileHousing y Seguridad - Web Hosting en Chile
Housing y Seguridad - Web Hosting en Chile
 
Diseño de Patrones (Fachada)
Diseño de Patrones (Fachada)Diseño de Patrones (Fachada)
Diseño de Patrones (Fachada)
 
Arquitectura Orientada a Servicios
Arquitectura Orientada a ServiciosArquitectura Orientada a Servicios
Arquitectura Orientada a Servicios
 
Arquitectura de seguridad de redes
Arquitectura de seguridad de redesArquitectura de seguridad de redes
Arquitectura de seguridad de redes
 
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
Integración de Mecanismos de Seguridad en la arquitectura de Aplicaciones Sof...
 
Clase 1 Sistema De Gestion De Base De Datos
Clase 1   Sistema De Gestion De Base De DatosClase 1   Sistema De Gestion De Base De Datos
Clase 1 Sistema De Gestion De Base De Datos
 
Arquitectura de seguridad de la información (Delima)
Arquitectura de seguridad de la información (Delima)Arquitectura de seguridad de la información (Delima)
Arquitectura de seguridad de la información (Delima)
 

Similaire à Monografia patrones de diseño proxy (3.0)

Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo2008PA2Info3
 
Programacion orientada a objetos de Felipe Tocora
Programacion orientada a objetos de Felipe TocoraProgramacion orientada a objetos de Felipe Tocora
Programacion orientada a objetos de Felipe TocoraFelipe Ardila
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamientoJuan Camilo
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado2008PA2Info3
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POOLibertad25
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseñoIsrael Rey
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A ObjetosAndrés
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patronesMarvin Zumbado
 
Catalogo de patrones 0
Catalogo de patrones 0Catalogo de patrones 0
Catalogo de patrones 0Fabio Ruiz
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .netcampus party
 
Taller campus party
Taller campus partyTaller campus party
Taller campus partycampus party
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 

Similaire à Monografia patrones de diseño proxy (3.0) (20)

Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
 
Programacion orientada a objetos de Felipe Tocora
Programacion orientada a objetos de Felipe TocoraProgramacion orientada a objetos de Felipe Tocora
Programacion orientada a objetos de Felipe Tocora
 
Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamiento
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POO
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones
PatronesPatrones
Patrones
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Catalogo de patrones 0
Catalogo de patrones 0Catalogo de patrones 0
Catalogo de patrones 0
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
Semana 1 Patrones de Diseño
Semana 1   Patrones de DiseñoSemana 1   Patrones de Diseño
Semana 1 Patrones de Diseño
 
Compu 1
Compu 1Compu 1
Compu 1
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Programacion orientado a objetos
Programacion orientado a objetosProgramacion orientado a objetos
Programacion orientado a objetos
 

Dernier

CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOMARIBEL DIAZ
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
los cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivoslos cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivosOrdinolaSernaquIrene
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...DavidBautistaFlores1
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...GIANCARLOORDINOLAORD
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAGUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAELIASPELAEZSARMIENTO1
 

Dernier (20)

Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
los cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivoslos cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivos
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIAGUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
GUIA DE TEXTOS EDUCATIVOS SANTILLANA PARA SECUNDARIA
 

Monografia patrones de diseño proxy (3.0)

  • 1. Patrones de diseño proxy [Escriba el subtítulo del documento] Alumnos: ARELLANO TEJADA, PABLO CESAR HERNANDEZ VALDERRAMA, SERGIO R. TORRES GONZALES, MARCO ANTONIO. Curso: TÓPICOS ESPECIALES EN INGENIERIA DE SOFTWARE. 2014
  • 2. Patrones de diseño proxy 2014 DEDICATORIA Principalmente dedicamos este trabajo a nuestros padres puesto que nos brindaron apoyo y fortaleza en el desarrollo y transcurso de este, ayudándonos a concluir satisfactoriamente nuestro proyecto. Dedicamos a Dios puesto que nos brinda sabiduría, amor y paciencia, nos ayuda en los momentos más difíciles brindándonos valores que nos fortalezcan no solo como trabajo de grupo, si no como personas. También dedicamos a nuestro Profesor del curso quien nos dio su sabiduría para la elaboración total de nuestra monografía asiendo así posible el desarrollo totalmente de este. 1 Universidad Nacional de Trujillo – Escuela de informática.
  • 3. Patrones de diseño proxy 2014 Índice 1. INTRODUCCIÓN .................................................................................... 3 2. MARCO TEÓRICO. ................................................................................. 4 3. DEFINICIONES....................................................................................... 5 4. MOTIVACION ......................................................................................... 5 5. USOS DEL PATRÓN PROXY ................................................................... 6 6. ESTRUCTURA DE LA SOLUCION (DIAGRAMA DE CLASES) ..................... 6 7. PARTICIPANTES .................................................................................... 7 8. COLABORACIONES (DIAGRAMA DE SECUENCIA) .................................. 7 10. CONCLUSIONES FINALES ................................................................. 10 11. BIBLIOGRAFIA .................................................................................. 11 2 Universidad Nacional de Trujillo – Escuela de informática.
  • 4. Patrones de diseño proxy 2014 1. INTRODUCCIÓN El presente documento aborda uno de los patrones estructurales del grupo de los cuatro (GOF), el patrón Proxy, el cual según Eric Gamma su propósito es proporcionar un sustituto de un determinado objeto para controlar el acceso a dicho objeto. También esta investigación presenta la problemática a la cual es aplicable y la solución que propone el patrón estructural Proxy incluyendo diagramas de clases y abordamos la responsabilidad de que este debe de realizar. Asimismo se muestra el código de ejemplo implementando el patrón estructural. 3 Universidad Nacional de Trujillo – Escuela de informática.
  • 5. Patrones de diseño proxy 2014 2. MARCO TEÓRICO. Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias. Los patrones de diseño pretenden: Proporcionar catálogos de elementos reusables en el diseño de sistemas software. Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente. Formalizar un vocabulario común entre diseñadores. Estandarizar el modo en que se realiza el diseño 2.1 Principales Patrones GoF (Gang Of Four) 2.1.1 Patrones creacionales Corresponden a patrones de diseño software que solucionan problemas de creación de instancias. Nos ayudan a encapsular y abstraer dicha creación: Object Pool (no pertenece a los patrones especificados por GoF): Abstract Factory (fábrica abstracta) Builder (constructor virtual) Factory Method (método de fabricación) Prototype (prototipo) Singleton (instancia única) 2.1.2 Patrones estructurales Son los patrones de diseño software que solucionan problemas de composición (agregación) de clases y objetos: Adapter o Wrapper (Adaptador o Envoltorio) Bridge (Puente) Composite (Objeto compuesto) 4 Universidad Nacional de Trujillo – Escuela de informática.
  • 6. Patrones de diseño proxy 2014 Decorator (Decorador) Facade (Fachada) Flyweight (Peso ligero) Proxy: Mantiene un representante de un objeto. Módulo: Agrupa varios elementos relacionados, como clases, singletons, y métodos, utilizados globalmente, en una entidad única. 3. DEFINICIONES Nombre: Patrón Proxy El patrón Proxy está clasificado dentro de los Patrones Estructurales, es también conocido como, Embajador, Apoderado (surrogante). Veamos primero su definición: Un proxy fuerza a que un método de un objeto RealSubject sea indirectamente ejecutado a través de un objeto Proxy, el cual actúa como delegado o sustituto del objeto RealSubject. Los objetos Proxy son usualmente declarados sin que el Cliente sepa de qué se trata de un Objeto Proxy. Se requiere que las llamadas a métodos de un objeto ocurran indirectamente a través de un objeto original, delegando luego las llamadas a los métodos de los objetos respectivos. El objeto proxy, comparte la misma interfaz o superclase que el objeto delegado. 4. MOTIVACION Una razón para controlar el acceso a un objeto es retrasar todo el costo de su creación e inicialización hasta que sea realmente necesario usarlo. Pensemos en un editor de documentos que puede insertar objetos gráficos en un documento. Algunos de estos objetos gráficos, como grandes imágenes raster, pueden ser costosos de crear. Sin embargo abrir un documento debería ser una operación que se efectuase rápidamente, por lo que debería evitar crear todos los objetos costosos a la vez en cuanto se abra el documento. Por otro lado, tampoco es necesario, ya que no todos esos objetos serán visibles al documento al mismo tiempo. . 5 Universidad Nacional de Trujillo – Escuela de informática.
  • 7. Patrones de diseño proxy 2014 5. USOS DEL PATRÓN PROXY Control de Acceso: El patrón puede ser usado para controlar el acceso a los métodos del RealSubject. La lógica del control de acceso se delegará en el proxy, de esta forma quedará más limpio el RealSubject (en términos de código). Acceso a objetos remotos: Representación de un objeto remoto de forma local, es decir, el Proxy resuelve y enmascara la forma en cómo conectarse al objeto remoto. Ejemplos de implementación de este patrón los pueden encontrar en EJB y RMI. Proxy Virtual: Crea objetos costosos bajo demanda. Por ejemplo, al iniciar una aplicación se pueden instanciar con este patrón todos los iconos de dicha aplicación, pero sólo cuando éste sea solicitado realmente ira a buscarlo al disco y presentado al usuario. Proxy de Referencia Inteligente: Sustituto de una referencia que hace operaciones adicionales cuando se accede a un objeto, como por ejemplo, controlar concurrencia, contar número de instancias, cargar un objeto en memoria, manejo de cache) 6. ESTRUCTURA DE LA SOLUCION (DIAGRAMA DE CLASES) Un proxy fuerza a que un método de un objeto RealSubject sea indirectamente ejecutado a través de un objeto Proxy, el cual actúa como delegado o sustituto del objeto RealSubject. Los objetos Proxy son usualmente declarados sin que el Cliente sepa que se trata de un Objeto Proxy. Diagrama de clases de cómo se implementa este patrón. 6 Universidad Nacional de Trujillo – Escuela de informática.
  • 8. Patrones de diseño proxy 2014 7. PARTICIPANTES 7.1SUBJECT (Graphic): Interfaz o clase abstracta que proporciona un acceso común al objeto real y su representante (proxy), de modo que pueda usarse, proxy en cualquier sitio en él se espere un RealSubject. 7.2 PROXY (ImageProxy): Mantiene una referencia al objeto real. Controla la creación y acceso a las operaciones del objeto real. 7.3 REALSUBJECT (Image): Define el objeto real representado por el proxy. 8. COLABORACIONES (DIAGRAMA DE SECUENCIA) El siguiente diagrama de clases que se muestra es cuando se necesita el Objeto Real y este es instanciado para que se muestre el cliente. Por lo tanto el Proxy instancia al RealSubject. 7 Universidad Nacional de Trujillo – Escuela de informática.
  • 9. Patrones de diseño proxy 2014 9. IMPLEMENTACION (EJEMPLO) Partamos con la SubjectProxy.java interfaz que deben cumplir tanto RealSubject como el public interface Subject { void doOperation(String username); } Veamos la implementación del RealSubject.java public classSubjectRealimplements Subject { @Override public void doOperation(String username) { System.out.println("doOperation Real"); } } Finalmente la implementación del SubjectProxy.java 8 Universidad Nacional de Trujillo – Escuela de informática.
  • 10. Patrones de diseño proxy 2014 public classSubjectProxyimplements Subject { private finalSubject _subjectReal; private boolean_connected= false; public SubjectProxy() { _subjectReal= new SubjectReal(); } @Override public voiddoOperation(String username) { // Control de Acceso simple if (!username.isEmpty() && "admin".equals(username)) { System.out.println("doOperacion proxied"); if(_connected) { _subjectReal.doOperation(username); } else { connectToRemote(); _subjectReal.doOperation(username); } } else { System.out.println("Access Denied"); } } private voidconnectToRemote() { System.out.println("Connecting to remote"); _connected= true; } } Nuestro cliente (quien consumirá a Subject) será SubjectTest.java publicclassSubjectTest { public static voidmain(String[] args) { Subject subjectProxied = new SubjectProxy(); subjectProxied.doOperation("admin"); } } 9 Universidad Nacional de Trujillo – Escuela de informática.
  • 11. Patrones de diseño proxy 2014 Esto imprimirá lo siguiente en la consola: La explicación al Access Denied está dada porque el patrón Proxy se utilizó como control de acceso al método doOperation. Sólo si el username es admin se ejecutará dicho método Veamos el Segundo Test publicclassSubjectTest { public static voidmain(String[] args) { Subject subjectProxied = new SubjectProxy(); subjectProxied.doOperation("admin"); } } imprimirá lo siguiente en consola: 10. CONCLUSIONES FINALES Se debe de implementar el patrón proxy cuando haya objetos que tomen mucho tiempo en cargarse, por ejemplo cargar una imagen que consume demasiada memoria. El patrón Proxy proporciona un representante o sustituto de otro objeto para controlar el acceso a este. Los patrones de diseño describen la solución a problemas que se repiten una y otra vez en nuestros sistemas, de forma que se puede usar esa solución siempre que haga falta. 10 Universidad Nacional de Trujillo – Escuela de informática.
  • 12. Patrones de diseño proxy 2014 11. BIBLIOGRAFIA Ian Sommerville, Ingeniería del Software,septima edición, Pearson 2005. Roger Pressman, Ingeniería del Software un enfoque práctico,quinta edición, Mc Graw Hill 2002. http://www.slideshare.net/urumisama/soa-3244791 http://arantxa.ii.uam.es/~eguerra/docencia/0809/12%20Proxy.pdf http://wikipedia.org/wiki/Proxy_(patron_de_diseño) 11 Universidad Nacional de Trujillo – Escuela de informática.