Ejercicios
Enunciado de los ejercicios
1. Creación de tarjetas de pago
a. Creación en función del cliente
Los clientes de un banco están clasificados en dos categorías:
-
Aquellos que tienen derecho a crédito.
-
Aquellos que no tienen este derecho.
Durante la solicitud de una tarjeta de pago, los primeros reciben una tarjeta de crédito (de débito diferido en su cuenta bancaria) mientras que los segundos solamente pueden tener una tarjeta de débito (a debitar inmediatamente en su cuenta bancaria).
1. ¿Qué patrón de diseño permite modelar la creación de la tarjeta de pago en función del cliente?
2. Modele su uso mediante un diagrama de clases.
b. Creación con ayuda de una fábrica
Existen dos modelos de tarjeta de débito y de crédito, a saber las tarjetas Visa y las tarjetas MasterCard.
Modele, con ayuda de un diagrama de clases, la creación de una tarjeta de pago en función de su familia (de crédito o de débito) utilizando el patrón de diseño Abstract Factory.
2. Autorización de tarjetas de pago
Cuando se adquiere una tarjeta de pago, es necesario acordar una autorización. Si la tarjeta es una tarjeta de débito (débito inmediato), la autorización se produce si el saldo de la cuenta sobre la que se debita la tarjeta es suficiente. Si la tarjeta es una tarjeta de crédito (débito diferido), la autorización se produce si el importe mensual de gastos no ha superado el límite.
1. ¿Qué patrón de diseño permite modelar la autorización durante el pago con una tarjeta de pago en función del modelo de tarjeta?
2. Modele su uso con ayuda de un diagrama de clases.
3. Sistema de archivos
Una carpeta contiene subcarpetas y archivos. Un sistema de archivos consiste en un conjunto de subcarpetas y de archivos contenidos en una carpeta llamada "raíz".
1. ¿Qué patrón de diseño permite modelar un sistema de archivos?
2. Muestre esta modelización con ayuda de un diagrama de clases.
Cada archivo posee un atributo...
Corrección de los ejercicios
1. Creación de tarjetas de pago
a. Creación en función del cliente
1. El patrón de diseño mejor adaptado para crear una tarjeta de pago en función del cliente es el patrón de diseño Factory Method. La creación de la tarjeta se realiza en la subclase correspondiente a la naturaleza del cliente.
2. El diagrama de clases correspondiente aparece a continuación.
b. Creación con ayuda de una fábrica
El objetivo aquí consiste en obtener una fábrica de tarjetas MasterCard y Visa para tarjetas de crédito y una fábrica similar para tarjetas de débito. El diagrama de clases correspondiente aparece a continuación.
2. Autorización de tarjetas de pago
1. El patrón de diseño mejor adaptado es Template Method. Permite distinguir la autorización del pago en función del modelo de tarjeta. El método autorizaPago de la clase TarjetaPago es abstracto. Está implementado de forma diferente en las dos subclases TarjetaCredito y TarjetaDebito relativas al enunciado.
2. El diagrama de clases es el siguiente:

3. Sistema de archivos
1. Un sistema de archivos está basado en una composición recursiva. El uso del patrón de diseño Composite está perfectamente adaptado para modelar tal sistema.
2. El diagrama de clases con el modelo del sistema de archivos se muestra a continuación. Una carpeta está compuesta por nodos que pueden ser archivos o bien carpetas. El diagrama muestra también la relación entre el sistema de archivos y la carpeta llamada "raíz".

3. El patrón de diseño que agrega las funcionalidades a los objetos existentes y que requiere el menor número de modificaciones es el patrón de diseño Visitor. Por tanto es el que mejor se adapta para realizar las operaciones sobre el sistema de archivos.
4. El diagrama de clases tras la integración del patrón de diseño Visitor aparece a continuación. Para aceptar a los visitantes, el método aceptaVisitante se ha incluido en las clases Nodo, Archivo, Carpeta y SistemaArchivos. El método aceptaVisitante de SistemaArchivos invoca al método aceptaVisitante de la raíz. Este último invoca al método visitaDirectorio del visitante y al método...