Herencia
Herencia es a relación entre clases por medio de la cual una clase deriva parte de su definición de otra clase
La herencia define una jerarquía de abstracción, en la cual una subclase hereda de una o más superclases
Ventajas de la herencia:
Se puede construir sobre lo que ya se tiene
Se puede reutilizar lo que ya se tiene
La herencia describe una relación “es un” o “clase de”
Relaciones Superclase-Subclase
En la cima de la jerarquía de clases está la clase más general
De ella descienden todas las demás, son clases especializadas
Subclases son versiones especializadas de sus superclases
En herencia simple, la subclase hereda únicamente de una superclase
En herencia múltiple, la subclase hereda de más de una superclase
Especialización es el proceso de crear subclases que heredan la estructura y/o comportamiento de superclases y añaden o modifican estructura y comportamiento según necesidades
Guía para identificar relaciones Super-Sub en forma descendente
Mirar frases con sustantivos con varios adjetivos sobre el nombre de la clase
Ejemplo: Banco de Comercio y Banco de Inversiones
Especializar únicamente cuando la subclase tiene un comportamiento significativo
Ejemplo:
Los vendedores ganan comisión sobre las ventas y tienen un salario básico
A veces los productos están registrados por un número de serie otros por lote
Guía para identificar relaciones Super-Sub en forma ascendente
Ver clases con atributos o métodos similares
Agruparlas colocando los atributos y métodos comunes en la superclase
Ejemplo:
Clientes, vendedores, y empleados, todos tienen dirección
Crear una clase Direccion para manejar toda la lógica de la dirección
Todos los productos tienen nombre e identificación
Crear una superclase Producto que contenga esos atributos
Tener cuidado de no forzar clases que contengan una estructura generalizada preconcebida
Guía para identificar relaciones Super-Sub – Reutilización
Colocar los atributos y métodos tan alto como sea posible en la jerarquía
Al mismo tiempo, no crear clases altamente especializadas en la cima de la jerarquía
Ejemplo: Ninguna superclase debe tener solo una subclase
Usar varias iteraciones para conseguir este balance
Indicativo de herencia
(Gp:) Relación de herencia
Herencia en PowerDesigner
En PowerDesigner la herencia se llama generalización
Para dibujar una relación de herencia entre dos clases:
1. En la paleta, hacer clic en la herramienta Generalización
2. Hacer clic y soltar una línea de generalización
de la subclase a la superclase
Propiedades de la Generalización :
Name
Code
Comment
Parent
Child
Stereotype
Visibility
Propiedades de la herencia en PowerDesigner
Herencia de atributos y operaciones
Definir atributos y operaciones al más alto nivel en la jerarquía de herencia
La herencia resalta las similitudes entre clases
Subclases heredan de una clase:
Todos los atributos
Todas las operaciones
Cada subclase puede añadir atributos
Cada subclase puede aumentar o redefinir las operaciones heredadas
Atención –en forma nativa CORBA no soporta sobrecarga
La sobrecarga ocurre cuando varias operaciones definidas en la misma clase tienen el mismo nombre pero tienen diferentes argumentos
Relaciones heredadas
Definir relaciones al más alto nivel en la jerarquía de herencia
Subclases de una clase heredan todas las relaciones
Cada subclase también puede participar en relaciones adicionales
Página siguiente |