Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ndice
Patrones de Diseo Fundamentales. Patrones de Creacin. Patrones de Descomposicin. Descargar patrones (mdl).
Patrn Delegacin
Se utiliza para extender la funcionalidad de una clase. Incorpora la funcionalidad de una clase usando una instancia de ella y llamando a sus mtodos. Cuando 2 clases tiene como relacin el siguiente criterio: es-un-rol / ejecutado-por. Utilizado cuando no se desea usar la herencia entre clases. Descargar.
4
Base
(from Pat ron Delegacin) Operacion1() Operacion2() Operacion3() 1 0..1
Delegadora
(from Patron Delegacin) objBase : Base Operacion1() Operacion2() Operacion4()
es - un - rol
Patrn Interfaz
Sirve para mantener un servicio uniforme a las clases clientes que llaman a clases servicios. Define un comportamiento comn entre varias clases. Descargar.
Servicio1 Cliente Servicios Provee un comportamiento comn y un servicio uniforme entre las clases de servicio. Servicio2
Metodo1() Metodo2()
Patrn Inmutable
Sirve para crear objetos donde no cambien sus valores en el tiempo. En caso de cambiar, se debe crear una nueva instancia. Tambin es utilizado para asegurar que una informacin no cambie en el tiempo. No utiliza mtodos set. Ejemplo: La configuracin de un programa durante su ejecucin. Un artculo publicado en una fecha determinada.
Descargar.
Inmutable
atributo1 atributo2 create(valor1, valor2) getAtributo2() getAtributo1()
Clase2 Cliente
(from Patrn Interfaz)
Clase1
11
Patrn Proxy
Permite una transparencia entre la comunicacin de un objeto y uno o varios objetos que proveen servicios. Permite controlar el acceso a los servicios, se encarga de la dificultad que hubiera al llamar a los servicios como es el caso de los servicios remotos, temas de seguridad, etc. Los objetos proxy se pueden encargar de temas de concurrencia al llamar objetos que proveen servicios. Descargar. 12
Cliente
(from Patrn Interfaz)
Proxy IProxy
<<COM+>>
ServicioRemoto
La clase Cliente no sabe quien le provee el servicio y le es transparente la comunicacin con el objeto remoto que le provee el servicio.
Metodo1() Metodo2()
13
Patrones de Creacin
Proveen ayuda a la hora de crear objetos, principalmente cuando esta creacin requiere toma de decisiones. Patrn Factory. Patrn Abstract Factory. Patrn Builder. Patrn Prototipo.
14
Patrn Factory
El cliente se abstrae de la instancia a crear. Centraliza la creacin de objetos. Provee una interfaz para el cliente, permitiendo crear una familia de objetos sin especificar su clase. Descargar.
15
Cliente
(from Patrn Interfaz)
16
Proveedor_BD1
(from Patron Factory)
Factoria1 IBD
(from Patro..) .
Factoria2
IFactoria
<<St atic>> getBD() : IB D
Proveedor_BD2
(from Patron Factory) Met odo1() Met odo2()
Cada factoria podra llamar a cada proveedor agrupandolos por criterios. Ejemplo: Factoria de proveedores libres y factoria de proveedores de paga.
Factoria_Abstracta
<<Static>> getFactoria(tipo) : IFactoria
Cliente
(from Patrn Interfaz)
18
Patrn Builder
Permite crear un objeto complejo Separa los datos de la representacin que tenga el objeto, permitiendo crear diferentes representaciones del objeto. Al cliente se le oculta los detalles de la construccin de los objetos. Es normalmente utilizada para crear pantallas. Ejemplo: Al crear una pantalla grfica dependiendo de algunos criterios, la pantalla pudiera tener mas o menos controles. Descargar.
19
Director
create() Construir(objeto : Clase_Concreta)
Cliente
(from Patrn Interfaz)
Clase
0..1 <<Abstract>> atributo1 atributo2 1 ParteA() ParteB() Metodo1()
Clase_Concreta
objClase : Clase <<Abstract>> Contruye_Parte_A() <<Abstract>> Contruye_Parte_B() <<Abstract>> Contruye_Parte_C() getObjeto() : Clase
Builder
20
: Cliente
: Director
: Builder
: Clase
8: getObjeto: Clase
21
Patrn Prototipo
Se utiliza cuando la creacin de un objeto demanda muchos recursos. Este patrn realiza la clonacin de objetos ya creados para que sean modificados sin demandar muchos recursos. Ejemplo: Si tenemos 2 pantallas de clientes ordenados por diferentes criterios basta con solo ir a la base de datos 1 vez y clonar los objetos para ajustarlo a las necesidades de ordenamiento. Descargar.
22
Cliente
(from Patrn Interfaz)
Maquina_Clonadora
Construir(ObjetoOriginal : Plantilla) : Plantilla Construir_Copias(ObjetoOriginal : Plantilla, n) : Array
Clase1
(from Pat ron Marker Int erface)
<<Abstract>>
Plantilla
Clonar()
Clase2
(from Patron Marker Interface)
23
: Cliente
1: crear
2: crear
: Maquina_Clonadora
: Clase1
3: Construir(objClase1)
4: Clonar
24
Patrones de Descomposicin
Provee ayuda para descomponer conceptos complejos en mltiples clases. Patrn Intercepting Filter. Patrn Compuesto.
25
Cliente
(from Patrn Interfaz)
FiltroManager
0.. 1 c reat e(datos) Filtrar(datos) Enviar(datos) 1
Destino
Filtro1 FiltroChain
Filtros : Array
Filtro2
IFiltro
Filtrar()
27
: Cliente
: FiltroManager
: FiltroChain
: Filtro1
: Filtro2
: Destino
1: crear(datos) 2: Filtrar(datos)
28
Patrn Compuesto
Permite trabajar objetos completos y simples de la misma manera. Permite aadir nuevos componentes sin afectar a los clientes. Permite disear clases que agrupen objetos complejos, los cuales a su vez estn formados por objetos complejos o simples. Ejemplo: El costo de una bicicleta es la suma de todos los costos de sus partes, donde podramos trabajar con el costo de la bicicleta o con el costo de los frenos de la misma manera, porque ambos son costos. 29 Descargar.
Cliente
(from Pat rn Interfaz)
Compuesto
List a : Array
ICompone nte
Metodo1() Metodo2()
Agregar(Objeto : Componente)
Simple
El primer objeto creado por el cliente es la raz y conforme se vayan agregando elementos se va a formar un rbol. Muy probable que cuando se llame a uno de los mtodos de un objeto compuesto, se tenga que hacer un recorrido a los elementos que tiene en la lista y as recursivamente.
30