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

celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 

Dernier (20)

celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 

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.