10 feb 2011

Herencia aplicada al proyecto

Programación Orientada a Objetos 
Semana 3 

Es momento de ir ampliando la relación entre una clase y otra de nuestro proyecto. Después de haber iniciado con las clases de nuestro programa y tener por lo menos una idea de la función que hará cada una de ellas, ahora es momento de analizar donde sería bueno el uso de herencia y polimorfismo.

En mi código de la entrada de taller en la semana dos, ya adelantaba sin saberlo algo de herencia, o por lo menos hasta como he comprendido el concepto, pero ahora que me queda más claro lo aplicaré a mi proyecto, pero primero introduzco un poco a mi árbol de clases. En el siguiente esquema muestro la relación entre una clase y otra de mi proyecto.

Ventana
  • Grafica
    • GraficaHistograma
    • GraficaPastel
  • Registro
    • RegistroNuevo

La herencia en java, a como yo he logrado entender hasta el momento, nos dice que es posible que una clase pueda tomar atributos y métodos de otra clase, que puede ser una clase padre. Esto es de gran ayuda ya que evitamos el tener que copiar y pegar código entero de una clase que ya habíamos definido anteriormente, a una clase nueva que estemos por crear y que esta ocupe métodos o atributos iguales a la anterior.

En mi proyecto mi clase Ventana es la que nos mostrara el marco donde estará contenida la información, ya sean los registros o las gráficas, que son precisamente dos clases hijas de Ventana.

Ya que la clase Grafica y Registro, harán toda su función dentro de la ventana, estas tendrán que heredar algunos atributos de su clase padre, y esto es claramente la herencia, que nos da la ventaja de no tener que andar copiando y pegando código repetido en diferentes clases, sino que una clase hija puede heredar todos los métodos usados por el padre.

En la clase GraficaHistograma y clase GraficaPastel será mas evidente el uso de herencia, ya que los atributos usados en la clase Grafica, serán necesarios en sus dos clases hijas que se tienen hasta el momento. Anteriormente en cada una de estas dos clases hijas de Grafica, tenía un método de obtención de datos, el cual se repetía, y ahora este método esta en la clase Grafica y como heredará sus métodos a sus dos hijas, no es necesario ponerlos de nuevo.

Lo mismo sucede con Registro, tiene una clase hija llamada RegistroNuevo, el cual hará uso de los atributos declarados en su padre.

En cuanto a polimorfismo no me queda claro donde lo podría incluir en mi código, pero por lo pronto queda claro lo que es la herencia.

1 comentario:

  1. Recomiendo reconsiderar los nombres de las clases y contemplar clases adicionales como platicábamos en las asesorías. Por lo general va razonablemente bien. Aquí te pongo 5 para no castigarte dos veces por lo mismo.

    ResponderEliminar