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 |