Documente Academic
Documente Profesional
Documente Cultură
FACULTAD INGENIERIA
ESCUELA INFORMATICA
ALUMNAS
ANGELICA CARDENAS
VIVIANA PROAO
PROFESOR
ING. LUIS IIGUEZ
TEMA
IMPLEMENTACION DE PATRONES DE
DISEO
CICLO
7 CICLO
Contenido
Universidad de CUENCA..................................................................................... 1
Contenido............................................................................................................ 2
DIAGRAMA....................................................................................................... 5
PATRON DE DISEO: Abstract Factory..........................................................5
Problema 2.......................................................................................................... 6
Problema 3.......................................................................................................... 8
DIAGRAMA ...................................................................................................... 8
PATRON DE DISEO: Adapter.......................................................................8
Problema 4.......................................................................................................... 9
DIAGRAMA..................................................................................................... 10
PATRON DE DISEO: Facade.......................................................................10
Problema 5........................................................................................................ 11
DIAGRAMA..................................................................................................... 11
PATRON DE DISEO: Singleton...................................................................11
Problema 6........................................................................................................ 11
DIAGRAMA..................................................................................................... 12
Problema 7........................................................................................................ 12
DIAGRAMA..................................................................................................... 13
Problema 8........................................................................................................ 13
DIAGRAMA..................................................................................................... 14
Problema 9........................................................................................................ 14
DIAGRAMA..................................................................................................... 15
PATRON DE DISEO: Flyweight...................................................................15
Problema 10...................................................................................................... 15
2
DIAGRAMA..................................................................................................... 16
PATRON DE DISEO: Chain of Responsability.............................................16
Problema 11...................................................................................................... 16
DIAGRAMA..................................................................................................... 17
Problema 12...................................................................................................... 17
DIAGRAMA..................................................................................................... 17
Problema 1
En un sistema bancario existen diferentes familias de productos con
caractersticas distintas.
3
Estn asociados a varios tipos de cuenta que dependen del tipo de cliente
que las abra:
Cuenta
2% de
inters
1% de
inters
1.5 % de
inters
0.5 % de
inters
Tarjeta de
Dbito
Gratuita
Tarjeta de
crdito
NO
Regalo
Gratuita
18 Dlares
Gratuita
Gratuita
Reproductor
CD
Seguro
5 dlares
NO
NO
CD Msica
Tal y como se ve, aunque puede parecer que se ofrecen siempre los mismos
productos, existen ciertas particularidades entre ellos que hacen que sean
distintos, ciertas caractersticas que hacen que se construyan de manera
distinta.
Nos gustara tener la opcin de que al crear una cierta cuenta se crearan
automticamente los productos asociados al tipo de cuenta.
Actividad
Representar el conjunto de productos mediante un diagrama de clases
aplicando los patrones de diseo que mejor solucionen el problema
DIAGRAMA
PATRON DE DISEO: Abstract Factory
Problema 2
Queremos construir objetos complejos que pueden ser de distinto tipo (los
tipos de cuenta). Utilizando para ello otros objetos y una secuencia de pasos
definida (crear el tipo de tarjeta, regalos, etc.).
Ahora nos interesara:
Actividad
DIAGRAMA
PATRON DE DISEO: Builder
Problema 3
Supongamos que en nuestro sistema bancario...
Actividad
Usar patrones para disear una solucin que nuestras instancias de Tarjeta y
Cuenta respondan adecuadamente a los nuevos cajeros.
DIAGRAMA
PATRON DE DISEO: Adapter
Problema 4
Volviendo al sistema bancario.... Supongamos que deseamos dotar a los
desarrolladores de la capa de presentacin de un mecanismo unificado de
acceso a la capa de dominio.
Queremos ofrecer las siguientes operaciones pblicas:
Actividad
Usar patrones para disear una solucin que modele el requerimiento descrito.
DIAGRAMA
PATRON DE DISEO: Facade
10
Problema 5
Queremos hacer un agente de base de datos en el que se centralice el acceso
a la BBDD. Queremos asegurarnos de que existe una nica instancia de ese
agente, para que todos los objetos que la usen estn tratando con la misma
instancia, accedan a ella de la misma forma,...
Actividad
DIAGRAMA
PATRON DE DISEO: Singleton
Agente
#instancia: Agente
+Agente()
+getInstancia(): Agente
Problema 6
Procesamiento de un lenguaje sencillo
ingreso:
transferencia:
Actividad
11
Usar patrones para disear una solucin que modele la situacin descrita.
DIAGRAMA
PATRON DE DISEO: Interpreter
Object
Analizador
+mValor: int
+mTipo: int
#mContexto: String
+Object()
+getValor()
+getTipo()
+procesar()
+procesar()
+Analizador()
ObjectCantidad
ObjectComando
+mCantidad: String
+ObjectCantidad()
+esLegal()
+procesar()
+procesar()
Ingresar
+ingresar()
+procesar()
Retirar
+retirar()
+procesar()
ObjectConcepto
ObjectCuenta
+mConcepto: String
+mCuenta: String
+ObjectConcepto()
+esLegal()
+procesar()
+ObjectCuenta()
+esLegal()
+procesar()
Transferir
+transferir()
+procesar()
Problema 7
Se est desarrollando un juego que permite al usuario interactuar con
personajes que juegan ciertos roles.
Se desea incorporar al juego una facilidad para crear nuevos personajes que se
aaden al conjunto de personajes predefinidos.
En el juego, todos los personajes sern instancias de un pequeo conjunto de
clases tales como Hroe, Villano, Prncipe o Monstruo.
12
Cada clase tiene una serie de atributos como nombre, imagen, altura, peso,
inteligencia, habilidades, etc. y segn sus valores, una instancia de la clase
representa a un personaje u otro, por ejemplo podemos tener los personajes
prncipe bobo o un prncipe listo, o monstruo bueno o monstruo malo.
Actividad
Usar patrones para disear una solucin que permita al usuario crear nuevos
personajes y seleccionar para cada sesin del juego personajes de una
coleccin de personajes creados.
DIAGRAMA
PATRON DE DISEO: Prototype
CatalogoPersonajes
Personaje
+aadirPersonaje()
+clone()
Heroe
J uego
+clone()
Villano
+clone()
Principe
+clone()
Monstruo
+clone()
Problema 8
Sistema Bancario. Nos centramos en la clase Cuenta
Cuenta ConDinero
Cuenta SinDinero
Cuenta BloqueadaJudicialmente
Actividad
Usar patrones para disear una solucin que permita delegar el
comportamiento de la operacin retirar
13
DIAGRAMA
PATRON DE DISEO: State
Cuenta
EstadoCuenta
+Entidad: String
+Sucursal: String
+retirar(importe)
+sacarDinero(importe: float)
+transferir(importe, cuentaDestino)
conDineo
sinDinero
Bloqueada
Problema 9
Diseo de un tablero de ajedrez
8 peones,
2 torres,
2 caballos,
2 alfiles,
1 reina,
1 rey.
Actividad
14
Usar patrones para disear una solucin que modele el tablero de ajedrez y las
piezas.
DIAGRAMA
PATRON DE DISEO: Flyweight
Problema 10
Gestor de ayuda.
Actividad
15
Usar patrones para disear una solucin que modele la situacin descrita.
DIAGRAMA
PATRON DE DISEO: Chain of Responsability
Problema 11
Actividad
Usar patrones para disear una solucin que modele la situacin descrita.
16
DIAGRAMA
PATRON DE DISEO: Strategy
J Panel
Layout
+mostrar()
+distribuir()
LayoutVertical
LayoutHorizontal
+distribuir()
+distribuir()
Problema 12
La librera Swing de Java incluye la clase JList para presentar una lista de
objetos (el texto que se visualiza es determinado por el mtodo toString de la
clase de los objetos) y permitir al usuario seleccionar uno de ellos.
El diseo de esta clase es un ejemplo de utilizacin del patrn Adaptador para
conseguir una clase reutilizable; se consigue que JList sea independiente de la
fuente (o modelo) de datos.
Muestra mediante un diagrama de clases el diseo que permitira a una clase
como JList visualizar diferentes listas de items, como por ejemplo un catlogo
de clientes (por ejemplo, se mostrara RUC) o un catlogo de cuentas (por
ejemplo, se mostrara el cdigo de cuenta).
Para cada clase o interfaz del diagrama indica los mtodos y atributos que son
significativos.
Ntese que la clase JList necesita disponer de informacin como el nmero de
tems a visualizar y el objeto seleccionado.
Los adaptadores almacenan la lista que se visualiza como una instancia de
Vector.
DIAGRAMA
PATRON DE DISEO: Adapter
17
J List
+mostrar()
+Seleccion()
18
ListModel
+getTamanio()
+getElemento()
AdaptadorCuentas
AdaptadorCleintes
CatalogoCuentas
CatalogoCleintes