Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios Patrones EAFIT
Ejercicios Patrones EAFIT
Posibilidad de adicionar nuevos protocolos sin afectar las clases no cambiantes del diseo.
Problema #2 ( Builder )
La aplicacin permitir que los elementos de la agenda ( los contactos ), el calendario ( las citas ) y el
memo ( las notas ) puedan ser enviados por correo electrnico. Para ello la interfaz de cada uno de
estos elementos habilitar el uso de un botn enviar por correo... que abrir una ventana de correo
donde solo se entrar el destinatario y el cuerpo del mensaje, ya que el asunto y el adjunto sern
creados automticamente a partir del elemento
Cul debe ser el diseo para que la lgica asociada al botn permita crear el asunto y el cuerpo del
mensaje para cualquier tipo de elemento ?
Reto:
Simplifique el diseo sabiendo que el correo electrnico a construir siempre tiene las misma
partes ( destinatario, asunto, cuerpo )
Al mismo tiempo permita que el diseo sea extensible para nuevos tipos de elementos en el
cliente ( por ejemplo tareas en un cronograma )
Problema #3 ( Singleton )
El usuario del cliente de correo puede enviar cualquier mensaje a una papelera especial para mensajes
eliminados. Existe sola una carpeta con esta funcin, y debe ser usada una vez al tiempo por las dems
partes del programa.
Cmo diseara la clase que maneja la funcionalidad de papelera de reciclaje de tal manera que
pueda existir una sola instancia en tiempo de ejecucin?
Reto:
Lista de carpetas. Slo una de las carpetas puede funcionar como papelera de
reciclaje.
Problema #4 ( Composite )
Las tareas definibles en la aplicacin tienen un nombre, una descripcin y un tiempo presupuestado
para ser completadas. Tambin es posible definir tareas compuestas, en la que una tarea padre agrupa
subtareas; en este caso no es necesario que el usuario defina el tiempo de la tarea padre ya que este es
la suma del tiempo de sus subtareas.
Existe una lgica de presentacin que muestra la lista de tareas pendientes y su tiempo presupuestado,
Cual diseo de clases facilita que esta lgica mostrar el atributo de tiempo presupuestado sin
importar si se trata de una tarea simple o una compuesta ?
Reto: Simplicidad en el diseo. Hacer que la dependencia de la presentacin sobre la abstraccin que
representa las tareas sea simple y ( en los posible ) slo se de sobre una sola clase.
Problema #5 ( Observer )
El mdulo de calendario de la aplicacin es visualmente muy sofisticado, tienen varias reas:
Los detalles de la tarea actualmente seleccionada en la lista, donde los campos pueden ser
modificados si se quiere
Una vista configurable del calendario, el usuario puede escoger entre varias opciones:
Las vistas del calendario resaltan visualmente con un color, el rango de tiempo de la cita actualmente
seleccionada de la lista, y si este rango cambia ( el usuario lo edita ), las vistas reflejan
automticamente el cambio.
Disee un conjunto de clases que represente las abstracciones de este escenario, y que permita a las
vistas del calendario resaltar la franja de tiempo que la tarea que est actualmente seleccionada.
Reto:
Mantenibilidad: Optimizar el diseo de tal forma que las clases del calendario sean
independientes de las clases de las tareas, y aun as permitirles la interaccin deseada
anteriormente.