0% encontró este documento útil (0 votos)
20 vistas12 páginas

Ejercicios de Patrones en Diseño UML

Este documento describe 9 patrones de diseño (Experto en Información, Creador, Controlador, Alta Cohesión, Bajo Acoplamiento, Polimorfismo, Fabricación Pura, Indirección y Variaciones Protegidas) y cómo aplicarlos para resolver diferentes requerimientos. Explica cada patrón con un diagrama de clases y justificación. Luego implementa el patrón de Polimorfismo en Java para consultar el crédito disponible de clientes naturales y jurídicas. Finalmente presenta el modelo actualizado en StarUML.

Cargado por

nerrsito
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas12 páginas

Ejercicios de Patrones en Diseño UML

Este documento describe 9 patrones de diseño (Experto en Información, Creador, Controlador, Alta Cohesión, Bajo Acoplamiento, Polimorfismo, Fabricación Pura, Indirección y Variaciones Protegidas) y cómo aplicarlos para resolver diferentes requerimientos. Explica cada patrón con un diagrama de clases y justificación. Luego implementa el patrón de Polimorfismo en Java para consultar el crédito disponible de clientes naturales y jurídicas. Finalmente presenta el modelo actualizado en StarUML.

Cargado por

nerrsito
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ejercicios – Patrones

Instrucciones:

1. Dado del caso en StarUML. Modifíquelo de tal manera de representar claramente cada uno de los
patrones.
a. Experto en información
b. Creador
c. Controlador
d. Alta cohesión
e. Bajo acoplamiento
f. Polimorfismo
g. Fabricación pura
h. Indirección
i. Variaciones Protegidas
2. Cada patrón del modelo debe expresarse a nivel de clases de diseño, mostrando de ser necesario
cambios que agreguen clases, atributos, relaciones, interfaces, entre otros
3. Cada uno de los patrones debe aplicarse justificando alguna funcionalidad o requisito.
4. Al final su trabajo debe seleccionar uno de los patrones representados e implementar las clases en
Java usando Eclipse.
5. Mostrar el diagrama de Clases de diseño, en donde se incorporan los patrones aplicados

Página 1 de 12
1 Patrones

1.1 Patrón Experto en Información:

Requerimiento: Gestionar el Stock del producto


Patrón: Experto en información
Diagrama de Clases Asociado:

Explicación: La Clase stock debe estar encargada de aumentar o disminuir las unidades
disponibles del producto, ya que esta Clase tiene toda la información sobre las unidades de los
productos

1.2 Patrón Creador:


Requerimiento: El pedido debe generar pagos
Patrón: Creador
Diagrama de Clases Asociado:

Explicación: El método agregar pago será el encargado de crear la Clase pago, ya que se agrega a
la Clase, almacena una instancia de los pagos, tiene toda la información necesaria para crear el
pago y usa las instancias creadas del objeto.

Página 2 de 12
1.3 Patrón Controlador:
Requerimiento: Generar pedido de compra
Patrón: Controlador
Diagrama de Clases Asociado:

Explicación: CarritoController es la Clase coordinadora, que al recibir la confirmación del usuario


desde la Clase VistaCarrito, genera un pedido con la información de CarritoCompra.

Página 3 de 12
1.4 Patrón Alta Cohesión:
Requerimiento: Calcular el total de la compra
Patrón: Alta Cohesión
Diagrama de Clases Asociado:

Explicación: Se separaron las responsabilidades del cálculo, creando un método subtotal, que es
cantidad de producto multiplicado por precio unitario, para la LíneaProducto y un método total,
que es la suma de los subtotales de LineaProducto, para CarritoCompra, generando una alta
cohesión de información.

Página 4 de 12
1.5 Patrón Bajo Acoplamiento:
Requerimiento: Disminuir acoplamiento entre clases
Patrón: Bajo acoplamiento
Diagrama de Clases Asociado:

Explicación: Existía un alto acoplamiento, por lo cual, para disminuirlo, se crea la Interfaz
ISubtotalLinea, lo que genera más independencia de las clases.

Página 5 de 12
1.6 Patrón Polimorfismo:
Requerimiento: Consultar crédito disponible para personas naturales y jurídicas
Patrón: Polimorfismo

Diagrama de Clases Asociado


Explicación: Se implementó polimorfismo, con el fin de hacer una distinción entre clientes, y
poder consultar el crédito disponible, según corresponda. Aunque las dos heredan de la Clase
Abstracta Cliente, la Clase PersonaNatural tiene un nombre como atributo y su crédito está dado
por una tarjeta de crédito, a diferencia de la Clase PersonaJuridica, que tiene razónSocial y posee
una línea de crédito.

Página 6 de 12
1.7 Patrón Fabricación Pura:
Requerimiento: Disminuir acoplamiento.
Patrón: Fabricación pura
Diagrama de Clases Asociado:

Explicación: Se disgregaron las responsabilidades de la Clase CarritoCompra, Creando una Clase


que se encargue de la vista de usuario y otra que tome la responsabilidad de generar el pedido,
desacoplando las Clases y dejando que CarritoCompra solo se responsabilice de la lógica del
negocio.

Página 7 de 12
1.8 Patrón Indirección:
Requerimiento: implementar medio de pagos
Patrón: indirección
Diagrama de Clases Asociado:

Explicación: Se utiliza la Clase servicio de pago como indirección, porque se espera que la API de
WebPay pueda sufrir cambios en el futuro.

1.9 Patrón Variaciones Protegidas:


Requerimiento: implementar medios de pago
Patrón: variaciones protegidas
Diagrama de Clases Asociado:

Explicación: Se crean Clases que heredan de la Clase abstracta MedioPago y que utilizan
polimorfismo para permitir la incorporación de modificaciones en los procesos de pago de
nuestros clientes

Página 8 de 12
2 Desarrollo de Patrón en JAVA

Patrón seleccionado: polimorfismo


Justificación: el código ejemplifica la implementación del patrón enfocada en el requerimiento de
consultar el crédito disponible de forma indistinta a un cliente ya sea una persona natural o
jurídica (polimorfismo).
Foto código clases implementadas (imagen parcial)

Página 9 de 12
Página 10 de 12
Página 11 de 12
3 Star UML.

Se adjunta el modelo con las modificaciones efectuadas producto de la aplicación de los patrones en
Star UML

Página 12 de 12

También podría gustarte