Proxy_271597

2
Josue Benjamin Guerrero Rascon 271597 Maestra:Yesica Olivia Ruiz Holguin Diseño de SW de bajo nivel Un patrón Proxy es un patrón estructural que tiene como propósito proporcionar un subrogado o intermediario de un objeto para controlar su acceso. Para explicar la motivación del uso de este patrón veamos un escenario donde su aplicación sería la solución más adecuada al problema planteado. Consideremos un editor que puede incluir objetos gráficos dentro de un documento. Se requiere que la apertura de un documento sea rápida, mientras que la creación de algunos objetos (imágenes de gran tamaño) es cara. En este caso no es necesario crear todos los objetos con imágenes nada más abrir el documento porque no todos los objetos son visibles. Interesa por tanto retrasar el coste de crear e inicializar un objeto hasta que es realmente necesario (por ejemplo, no abrir las imágenes de un documento hasta que no son visibles). La solución que se plantea para ello es la de cargar las imágenes bajo demanda. Pero, ¿cómo cargar las imágenes bajo demanda sin complicar el resto del editor? La respuesta es utilizar un objeto proxy . Dicho objeto se comporta como una imagen normal y es el responsable de cargar la imagen bajo demanda. El patrón proxy se usa cuando se necesita una referencia a un objeto más flexible o sofisticada que un puntero. Dependiendo de la función que se desea realizar con dicha referencia podemos distinguir diferentes tipos

Transcript of Proxy_271597

Josue Benjamin Guerrero Rascon 271597Maestra:Yesica Olivia Ruiz Holguin Diseo de SW de bajo nivel

UnpatrnProxyes un patrn estructural que tiene comopropsitoproporcionar unsubrogado o intermediariode un objeto para controlar su acceso.Para explicar lamotivacindel uso de este patrn veamos un escenario donde su aplicacin sera la solucin ms adecuada al problema planteado. Consideremos un editor que puede incluir objetos grficos dentro de un documento. Se requiere que la apertura de un documento sea rpida, mientras que la creacin de algunos objetos (imgenes de gran tamao) es cara. En este caso no es necesario crear todos los objetos con imgenes nada ms abrir el documento porque no todos los objetos son visibles. Interesa por tanto retrasar el coste de crear e inicializar un objeto hasta que es realmente necesario (por ejemplo, no abrir las imgenes de un documento hasta que no son visibles). Lasolucinque se plantea para ello es la de cargar las imgenes bajo demanda. Pero, cmo cargar las imgenes bajo demanda sin complicar el resto del editor? La respuesta es utilizar un objetoproxy. Dicho objeto se comporta como una imagen normal y es el responsable de cargar la imagen bajo demanda.

El patrnproxyse usa cuando se necesita una referencia a un objeto ms flexible o sofisticada que un puntero. Dependiendo de la funcin que se desea realizar con dicha referencia podemos distinguir diferentes tipos deproxies: proxyremoto: representante local de un objeto remoto. proxyvirtual: crea objetos costosos bajo demanda (como la claseImagenProxyen el ejemplo de motivacin). proxyde proteccin: controla el acceso al objeto original (ejemplo deproxyde proteccin:[1]) proxyde referencia inteligente: sustituto de un puntero que lleva a cabo operaciones adicionales cuando se accede a un objeto (ej. contar nmero de referencias al objeto real, cargar un objeto persistente bajo demanda en memoria, control de concurrencia de acceso tal como bloquear el objeto para impedir acceso concurrente, ).

El uso de unproxyintroduce un nivel de indireccin adicional con diferentes usos: Unproxyremotooculta el hecho de que un objeto reside en otro espacio de direcciones. Unproxyvirtualpuede realizar optimizaciones, como la creacin de objetos bajo demanda. Elproxyde protecciny lasreferencias inteligentespermiten realizar diversas tareas de mantenimiento adicionales al acceder a un objeto.