Descargar

Diagramas de Interacción – UML (página 3)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red

Clasificación Estática

ext(C0) = ? ext(Ci) ? completa ext(Ci) ? ext(Cj) = ? ? disjunta Generalización C0 C1 Cn { static }

edu.red

Clasificación Dinámica

ext(C0) = ? ext(Ci) ? completa extt(Ci) ? extt(Cj) = ? ? disjunta en t

extt1(Ci) ? extt2(Cj) ? ? ? posiblemente no disjunta en diferentes instantes Generalización C0 C1 Cn { dinámica }

edu.red

Ejemplo: varias especializaciones a partir de la misma clase padre, usando discriminadores:

Generalización Vehículo Aéreo Avión Helicóptero Comercial Militar estructura uso

edu.red

Clasificación Múltiple (herencia múltiple) Se presenta cuando una subclase tiene más de una superclase

La herencia múltiple debe manejarse con precaución. Algunos problemas son el conflicto de nombre y el conflicto de precedencia

Se recomienda un uso restringido y disciplinado de la herencia. Java y Ada 95 simplemente no ofrecen herencia múltiple

edu.red

Herencia Múltiple Uso disciplinado de la herencia múltiple: clasificaciones disjuntas con clases padre en hojas de jerarquías alternativas

Animal Bípedo Cuadrúpedo Con Pelos Con Plumas Con Escamas Herbívoro Carnívoro cubertura cobertura cobertura comida nro patas nro patas comida Conejo

edu.red

Principio de Sustitución El Principio de Sustitución de Liskow (1987) afirma que:

“Debe ser posible utilizar cualquier objeto instancia de una subclase en el lugar de cualquier objeto instancia de su superclase sin que la semántica del programa escrito en los términos de la superclase se vea afectado.”

edu.red

Principio de Sustitución Dado que los programadores pueden introducir código en las subclases redefiniendo las operaciones, es posible introducir involuntaria-mente incoherencias que violen el principio de sustitución

El polimorfismo que veremos a continuación no debería implementarse sin este principio

edu.red

Polimorfismo El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas

El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje

Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones

edu.red

Polimorfismo Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta dormir ? ?

edu.red

Polimorfismo Dormir() { en un árbol } Dormir() { sobrela espalda } Dormir() { sobre el vientre } Dormir() { } Animal dormir() León dormir() Oso dormir() Tigre dormir()

edu.red

Polimorfismo La búsqueda automática del código que en cada momento se va a ejecutar es fruto del enlace dinámico

El cumplimiento del Principio de Sustitución permite obtener un comportamiento y diseño coherente

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente