Patrones de diseño
Se aplican durante la construcción de diagramas de interacción, al asignar responsabilidades a los objetos y
al diseñar la colaboración entre ellos.
Es importante acordar una definición de responsabilidad: contrato u obligación de un tipo o clase. Las
responsabilidades se relacionan con las obligaciones de un objeto respecto a sucomportamiento. Las
responsabilidades pertenecen básicamente a dos categorías: el conocer y el hacer.
Las responsabilidades relacionadas con el hacer:
Hacer algo en uno mismo.
Iniciar una acción en otros objetos.
Controlar y coordinar actividades en otros objetos.
Las responsabilidades relacionadas con el conocer:
Estar enterado de los datos privados encapsulados.
Estar enterado de laexistencia de objetos conexos.
Estar enterado de cosas que se pueden derivar o calcular.
Material Preparado por: Ing. Judith Meles
Apunte Patrones y Software UML 2.0
25
Patrón Experto
Solución: Asignar una responsabilidad al experto en información: la clase que cuenta con la información
necesaria para cumplir con la responsabilidad.
Problema: ¿Cuál es el principio fundamental en virtud delcual se asignan las responsabilidades en el diseño
orientado a objetos?
Comience asignando las responsabilidades con una definición clara de ellas.
Ejemplo: Sistema de Punto de Venta, ¿quién debe conocer el total de una venta?
Diagrama de Comunicación:
:Venta
t:=total()
1: *obtenerSiguiente()
:DetalleDeVenta
Actor
(from )
2: calcularSubtotal()
dVta :
DetalleDeVenta:EspecificacionDeProducto
2.1: getPrecio()
Conclusión:
Venta: conoce el total de la venta
DetalleDeVenta: conoce el subtotal de la Línea de Producto
EspecificaciónDeProducto: conoce el precio del producto.
Explicación:
Expresa la idea que los objetos hacen cosas relacionadas con la información que poseen.
Puede haber expertos parciales (ej. DetalleDeVenta), que ayudan para cumplir con unaresponsabilidad.
Beneficios:
Se conserva bajo el acoplamiento lo que favorece a tener sistemas robustos y de fácil
mantenimiento.
El comportamiento se distribuye con las clases que cuentan con la información requerida
fomentando la creación de clases sencillas y cohesivas.
Otras formas de designar este patrón:
Material Preparado por: Ing. Judith Meles
Apunte Patrones y Software UML 2.026
Patrón Creador
Solución: Asignar a la clase B la responsabilidad de crear una instancia de la clase A en uno de los
siguientes casos:
B agrega los objetos de A.
B contiene los objetos de A.
B registra las instancias de los objetos de A.
B utiliza específicamente los objetos de A.
B tiene los datos de inicialización que serán transmitidos a A cuando sea creado (así B es
un expertorespecto de la creación de A).
Problema: ¿Quién debería ser el responsable de crear una nueva instancia de alguna clase?
Ejemplo: Sistema de Punto de Venta, ¿quién debe crear el detalle de venta?
Diagrama de Comunicación:
1: crearDetalleVenta(cant :int)
:Venta
1.1: new(cant :int)
:DetalleDeVenta
:Actor
Venta
estaTerminada
fecha
hora
crearDetalleVenta(cant :int)efectuarPago()
estaTerminada()
montoPago()
total()
Conclusión:
Venta: crea el DetalleDeVenta
Explicación:
Guía la asignación de responsabilidades relacionadas con la creación de objetos. El propósito es
encontrar un creador que debemos conectar con el objeto producido, esto soporta el bajo
acoplamiento.
Beneficios:
Da soporte al bajo acoplamiento, lo cual supone menos dependencias respecto almantenimiento y
mejores oportunidades de reutilización. como la clase creada tiende a ser visible al creador (razón
por la cual se la eligió), el acoplamiento no aumenta.
Patrones Conexos:
Bajo Acoplamiento.
Parte- Todo: define los objetos que soportan el encapsulamiento de sus componentes.
Material Preparado por: Ing. Judith Meles
Apunte Patrones y Software UML 2.0
27
Patrón Bajo...
Regístrate para leer el documento completo.