Está en la página 1de 7

CONTROL 5

ANA BAHAMONDES DINAMARCA

PROGRAMACION ORIENTADA A OBJETOS II

Instituto IACC

22-03-2021
DESARROLLO

Una organización dedicada al diseño y desarrollo de software lo ha contratado a usted para

que realice y documente uno de sus sistemas mediante las premisas referentes a los patrones

de diseños estructurales estudiados en esta semana.

El sistema a con el que trabajará es el de una organización que se dedica al dictado de cursos

de computación, ésta cuenta con sucursales en todo el país, cada sucursal tiene un listado de

cursos disponibles, así mismo sus staff de colaboradores. Se requiere que en la

documentación se refleje lo siguiente:

A partir del caso anterior y su relación con los contenidos revisados en la semana, responda

las siguientes premisas:

1) ¿Cómo se puede aplicar el patrón de diseño creacional facade? (2 puntos).

Se tiene un sistema con flexibilidad y complejo a la vez, el cual necesita de una

configuración con muchísimos parámetros para llegar a un propósito determinado. Si

bien, este sistema quiere utilizar algunas de las funciones proporcionadas por el primer

sistema, pero siempre son, muchas de ellas, las mismas operaciones de configuración.

Existe otro problema que este modelo intenta resolver la utilización de múltiples

interfaces de subsistema por medio de un solo punto de acceso.

Lo anterior, se aplica en lo siguiente:

 Cuando es necesario que una librería sea más comprensible.

 El sistema nuestro en cuestión, debe acceder a las funcionalidades de un sistema

complejo.

 Los clientes deben tener que acceder a distintas APIs y se debe tener simplificado

aquel acceso.
 Es recomendable simplificar el código de uso, debido a que hay tareas y/o

configuraciones muy frecuentes.

2) ¿Cuáles son las características del sistema que se adecuan a la aplicabilidad del

patrón flyweight? (2 puntos).

Es necesario la eliminación y reducción de la redundancia cuando se tiene muchos

objetos compartiendo mucha información. El soporte que debemos proporcionar tiene

memoria limitada y necesita aprovecharse óptimamente. Es irrelevante la identidad

propia de los objetos.

Para dar solución a la problemática, se debe abstraer las características del elemento se

deben de repetir en grupos de a dos (intrínsecas y extrínsecas). Las primeras hacen reseña

a los estados comunes que tiene el objeto o grupo de objetos a repetir, mientras que las

segundas sugieren a las características mismas de la instancia.

Para simplificar la estructura seria la siguiente:


 Client: Constituye los estados extrínsecos de los objetos. Trabaja con una referencia a un

Flyweight.

 FlyweightFactory: opera y crea objetos flyweight certificandose que se compartan de

manera adecuada. Cuando el cliente solicita un flyweight, FlyweightFactory suministra

una instancia que ya existe y si no existe, está la crea.

 Flyweight: esta interfaz aguanta métodos para el establecimiento, acceso y modificación

de las propiedades extrínsecas. Esta debe de implementarse por las instancias del

Flyweight.

 ConcreteFlyweight: Realiza la interfaz Flyweight y agrega el almacenamiento de las

características intrínsecas (si es que las hay) y deben poder ser compartidos.

 UnsharedConcreteFlyweight: Todos los Flyweight no tienen por qué estar compartidos,

la ejecución de la interfaz habilita la compartición, pero no la fuerza. Es normal que los

objetos UnsharedConcreteFlyweight tengan hijos ConcreteFlyweight en algún punto de

la jerarquía.

Las consecuencias de lo anterior son lo siguiente:

POSITIVAS:
 Simplifica la utilización de los sistemas complejos con tareas redundantes.
 Comprime el acoplamiento entre el subsistema y los clientes.
 Esconde al cliente la complejidad real del sistema.
NEGATIVAS:
 Acrecienta la complejidad de los objetos.
 Acrecienta el número de clases del sistema.

Patrones que se relacionan son los siguientes: Abstract Factory, Composite, State y Strategy.
3) ¿Es posible que el sistema creado maneje el patrón proxy? Justifique su respuesta

(2puntos).

Este tipo de patrón, es un patrón estructural el cual permite proporcionar un intermediario

de un objeto para poder controlar su acceso.

Para entender el proxy, esta es una clase que trabaja como una interfaz para otra cosa.

Esta clase podría interactuar con cualquier cosa tales como: un objeto grande en la

memoria, una conexión en la red, algún otro recurso o archivo que sea de gran costo y

difícil de duplicar. Con sencillas palabras, se puede decir que, el proxy es un contenedor

o un objeto de agente que el cliente está convocando para acceder al objeto de servicio

real tras la escena. Su utilización puede ser meramente reenvío al objeto real, como lo es

el almacenamiento de cache cuando las operaciones en el objeto real requieren muchos

recursos, o la demostración de las condiciones anteriores a las que se soliciten las

operaciones en el objeto real.

La utilización de un objeto proxy, para el cliente, es parecido al uso que se le da al objeto

real ya que los dos implementan la misma interfaz. El patrón proxy es utilizado cuando es

necesario una reseña a un objeto más flexible o sofisticada que un puntero.


Según la función que necesitemos ejecutar con la referencia anterior, se pueden describir

los siguientes tipos de proxy’s:

 Proxy de protección: controla el acceso al objeto.

 Proxy remoto: es el representante local de un objeto remoto.

 Proxy de referencia inteligente: es el suplente de un puntero que lleva a cabo

operaciones adicionales cuando se accede a un objeto.

 Proxy virtual: crea objetos costosos bajo.

4) ¿Qué patrón de diseño estructural utilizaría en este caso? (3 puntos)

En mi opinión, yo utilizaría el patrón llamado FLYWEIGHT, por el motivo de que este

patrón se basa en que los objetos que se repetirán contengan características comunes ya

que esto eliminaría la redundancia existente entre los objetos para el perfeccionamiento

del procesamiento de la información en la utilización de cada aplicación. Este método se

enfocaría en eliminar o minimizar la redundancia cuando tiene múltiples objetos con

información similar compartida para optimizar el uso de la memoria de la aplicación.


BIBLIOGRAFÍA

 IACC, 2021. Contenido Semana 5: Patrones de diseño estructurales II.

También podría gustarte