Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PATRONES DE DISEÑO.
Ingeniería en Sistemas de Información.
DISEÑO DE SISTEMAS.
Integrantes:
Costa Liloff, Christian Ariel. LU: 11569.
Deibele González, Augusto Julián. LU: 11348.
Makula, Daiana Jacqueline. LU: 8932.
Tourn, Franco Emanuel. LU: 10172.
Yrala, Fabián Elias. LU: 9506.
Página 1|6
Ingeniería en Sistemas de Información – UNCAus
Profesor: Lic. Paszco Gustavo Ariel
Página 2|6
Ingeniería en Sistemas de Información – UNCAus
Profesor: Lic. Paszco Gustavo Ariel
3. La estrategia de fijación de precios de una venta puede variar. Durante un periodo podría
ser el 10% de descuento en todas las ventas, después podría ser un descuento de 100 $ si el total
de la venta es superior a 2000 $, y podrían ocurrir muchas otras variaciones. ¿Cómo diseñamos
los diversos algoritmos de fijación de precios?
Patrón Utilizado: Strategy.
Aplicabilidad: Se utiliza el patrón Strategy debido a los distintos casos que pueden haber en la
fijación de precios.
Participantes:
Estrategia: FijacionDePrecio.
Contexto: Venta..
EstrategiaConcreta: Descuento10Porciento, Descuento2000.
Implementación: FijacionDePrecio tiene una relación de dependencia con la clase Venta y esta
definirá el tipo de descuento que se aplica a la venta realizada, dependiendo de cuál sea la
variación elegida.
Página 3|6
Ingeniería en Sistemas de Información – UNCAus
Profesor: Lic. Paszco Gustavo Ariel
• Fachada: CorreoElectronico.
• Clases del Subsistema: CorreoNuevo, BotonEnviar, Cabecera, CuerpoMensaje,
Firma, Anexo.
Implementación: CorreoNuevo es una clase compuesta por subclases. El cliente puede
comunicarse con el conjunto de subclases por medio de la interfaz CorreoElectronico y de esta
manera se evita que los clientes tengan que saber sobre la implementación de los subsistemas que
están usando.
Página 4|6
Ingeniería en Sistemas de Información – UNCAus
Profesor: Lic. Paszco Gustavo Ariel
5. Supuesto que se está construyendo una librería de clases para representar componentes
GUI, se ha decidido que en vez de que un programador defina la posición de los componentes
GUI (Button, List, Dialog,..) sobre una ventana, se incluyan manejadores de disposición de
componentes (layout manager), cada uno de los cuales distribuye un conjunto dado de
componentes gráficos de acuerdo a algún esquema de distribución: horizontalmente,
verticalmente, en varias filas, en forma de una matriz, etcétera. Debe ser posible cambiar en
tiempo de ejecución la distribución elegida inicialmente. Supuesto que la clase JPanel es la que
representa a un contenedor de componentes gráficos, diseña una solución para introducir en la
librería los manejadores de disposición. Dibuja el diagrama de clases que refleje la solución e
indica qué patrón has utilizado.
Patrón utilizado: Strategy.
Aplicabilidad: los manejadores de posición se introducen implementando el patrón de diseño
STRATEGY para si encapsular la responsabilidad del posicionamiento de los elementos en la
clase abstracta LayoutManager. Las subclases de esta serán las encargadas de establecer los
diferentes algoritmos para el posicionamiento de los objetos, y así el cliente podrá utilizar una
política u otra y modificarla en tiempo de ejecución.
Participantes:
Contexto: JPanel.
Estrategia (componedor): LayoutManager.
Estrategia concreta: EsquemaHorizontal, EsquemaVertical y EsquemaMatricia
Implementación: JPanel y LayoutManager se definen de manera que cada estrategia concreta
pueda acceder a cualquier dato que ésta necesite de contexto (JPanel) y viceversa, haciendo que
contexto (JPanel) pase los datos como parámetros a las operaciones de estrategia
(LayoutManager).
Página 5|6
Ingeniería en Sistemas de Información – UNCAus
Profesor: Lic. Paszco Gustavo Ariel
6. Gestor de ayuda: Tenemos varias clases “Boton”, “Pantalla” y “Aplicacion”. Cada una
con un método “ayuda()”. Queremos desacoplar al emisor de un mensaje del receptor, de forma
que se pueda ejecutar la operación “ayuda()” en cualquier objeto. Si el objeto es capaz de hacerse
cargo de la operación, la ejecutará, y si no la pasará a otro (sucesor) hasta que alguien se haga
cargo del mensaje. ¿Cómo podríamos modelarlo?
Patrón Utilizado: Chain of responsability (Cadena de Responsabilidad).
Aplicabilidad: Se aplica este patrón porque se busca que el método ayuda() se pueda ejecutar
desde cualquier objeto según la petición del Usuario.
Participantes:
Manejador: GestorDeAyuda
ManejadorConcreto: Boton, Pantalla, Aplicacion.
Cliente: UserApp
Implementación: Se separa el emisor del receptor para que cuando se reciba la petición esta sea
asignada al objeto correspondiente.
Página 6|6