Share PDF

Search documents:
  Report this document  
    Download as PDF   
      Share on Facebook

[ENSAYO: JERARQUÍA] Mendoza Jacobo Héctor

Jerarquía

La jerarquía es con algo que vivimos en nuestra vida diaria, fuera de la programación orientada a objetos, por lo tanto, es normal que estemos familiarizados con el término.

En caso de lo contrario: jerarquía s. f.

1Organización o clasificación de categorías o poderes, siguiendo un orden de importancia: la cabeza de la jerarquía eclesiástica es el Papa.

2Grupo de personas que ocupan un mismo rango dentro de una organización.

3Persona que desempeña un cargo importante dentro de una organización[1].

Esto, es en el mundo real, sin embargo, ¿En programación orientada a objetos?

En el mundo de la programación orientada a objetos, la jerarquía se le llama a orden que hay en las relaciones de distintos niveles de abstracciones, o bien:

“cualquier clasificación u ordenación de abstracciones en una estructura de árbol. Algunos tipos de Jerarquía son: Jerarquía de agregación, jerarquía de clases, jerarquía de herencia, jerarquía de partición, jerarquía de especialización, jerarquía de tipo.”[2]

Prácticamente, el término jerarquía no varía mucho de la realidad a la programación orientada a objetos. Es básicamente distintos niveles, que para llegar de un lugar a otro en estos “puestos”, o mejor dicho Niveles, es necesario recorrer otros, hasta llegar a la cima.

Para aclarar esto, pensemos como en un árbol:

¿Por dónde necesita pasar el agua para llegar a la última hoja del árbol?

Primero, necesita llegar a la raíz del árbol, una vez allí, el árbol absorbe el agua, con vacío y fuerza capilar, hace que el agua suba por su tronco. Una vez allí, el agua se esparce entre las ramas, y para finalizar, el agua llega a todas y cada una de las hojas que existen en el árbol.

Es un ejemplo burdo, pero ayuda a la comprensión de éste, haciendo una jerarquía de ciertos elementos para llegar al final:

Raíz -> Tronco -> Ramas -> Hoja;

La jerarquía en orientada a objetos, indica que una clase, está relacionada a otra, a través de una jerarquía. En objetos, esto significa que una clase “hereda” (subclase) atributos de otra clase superior (superclase). Esto significa que una subclase hereda de una superclase, básicamente es el “padre” de esta clase.

Para poder entender este concepto, es muy importante hacerse una pregunta que ayuda a la definición de éste concepto:

El objeto B es un tipo A?.

Un ejemplo, Pan, es una clase de objeto, un alimento vaya, pero hay distintos tipos de pan: De barra, toscano, dulce, telera.

Entonces utilizando el concepto anterior: Toscano, ¿es un tipo de pan? Si. Por lo tanto, toscano hereda de pan. Hay una regla muy importante a seguir a la hora de tratar de implementar la herencia: solo debe de funcionar hacia un solo sentido: ¿Pan es un tipo de toscano? No. Por lo que se pierde el sentido, y logramos mantener una herencia lógica. Pero, ¿Qué no hablábamos de jerarquía?, sí, pero aquí es donde ambos mundos chocan:

Si no hay herencia, no hay jerarquía.

Utilizando la definición de jerarquía, primero en la parte más baja del árbol, tenemos al tipo de pan: Dulce. De allí subimos un Nivel de abstracción y llegamos al siguiente nivel: Pan. Pan, a su

UABC |Ensayo: Jerarquía 1

[ENSAYO: JERARQUÍA] Mendoza Jacobo Héctor

vez, es un tipo de alimento, por lo tanto, podemos subir aun otro nivel de abstracción, a la clase Alimento. Jerárquicamente, tenemos:

Esto sin embargo, como podemos ver, cada nivel de jerarquía, solo hereda de una clase superior, por ejemplo: Telera solo hereda de pan, mas no de pan y carne. Por lo tanto, a esto se le llama Herencia Simple. Algunas veces, hay niveles de abstracción, en los cuales, heredan de más de una clase, como por ejemplo:

UABC |Ensayo: Jerarquía 2

[ENSAYO: JERARQUÍA] Mendoza Jacobo Héctor

Como podemos ver, el objeto “Iphone” hereda de 3 tipos de clases: Celular, cámara y reproductor de música. Esto se le llama Herencia múltiple. Sin embargo, en java, eso genera un problema a la hora de pasarlo a código, por lo que se utiliza una especie de clase llamada: Interface.

Agregación/Composición

Estos dos conceptos, ayudan al entendimiento de la derivación de los objetos y sus herencias. Estos conceptos, tienen algo en común, sin embargo no son iguales. A que me refiero, pues a que ambos llegan a “algo” en común, llegan a un mismo punto, pero estos dos no son iguales.

Una agregación, es cuando se le agrega(Valga la redundancia) a un algo, nuevos atributos, pero estos atributos, no son necesarios para su funcionamiento, también, estos atributos pueden existir por si solos, sin el objeto principal. Una composición, es la reunión de atributos, que sin estos, la clase principal, no podría funcionar, y que por sí solos, no tienen sentido en su existencia.

Para entender esto veamos un ejemplo:

Un sistema embebido, Un celular multimedia (retomando el ejemplo del iphone). Si se le retira la función de conectarse a la red de internet, el teléfono celular, sigue funcionando como un celular, por lo que aun cumple con su función principal, solo que tiene un detallito menos. Si se le quita la cámara, el teléfono celular, sigue funcionando como tal, por lo tanto, aun se conserva la esencia. En el momento que uno retira la funcionalidad de “telefonía”, la capacidad de conectarse a la red telefónica, éste pierde su característica principal, pierde el sentido de “teléfono multimedia”. Entonces, concluimos que:

Cámara, música e internet, son agregaciones, que por sí solos pueden existir, y la clase celular, puede seguir funcionando.

La función de telefonía, al retirarla, el celular pierde su esencia, y se pierde el sentido de tener un celular.

Estos, en UML se pueden representar con simbología:

En donde: El rombo blanco, representa agregación, y el rombo relleno, representa composición.

UABC |Ensayo: Jerarquía 3

[ENSAYO: JERARQUÍA] Mendoza Jacobo Héctor

Ejercicios:

1.Hacer dos ejemplos conceptuales a Nivel de declaración de clases con sus atributos:

a. Clasificación de los seres vivos. Al menos 5 niveles de profundidad de la herencia:

UABC |Ensayo: Jerarquía 4

[ENSAYO: JERARQUÍA] Mendoza Jacobo Héctor

b. Clasificación de vehículos:

2. Ejemplo de agregación del mundo real:

UABC |Ensayo: Jerarquía 5

[ENSAYO: JERARQUÍA] Mendoza Jacobo Héctor

3. Ejemplo de composición del mundo real:

Referencias:

[1]The free dictionary by Farlex Definición de la palabra jerarquía.

http://es.thefreedictionary.com/jerarqu%C3%ADa

[2]Eric L González s

“La programación orientada a objeto Jerarquía de clases”. http://www.scribd.com/doc/6546807/Jerarquia-de-Clases

UABC |Ensayo: Jerarquía 6