Java - Clases, Interfaces y herencia múltiple

 
Vista:

Clases, Interfaces y herencia múltiple

Publicado por Pirer (1 intervención) el 11/05/2010 23:05:39
Hola!

Estoy interesado en saber cómo puedo implementar lo que vendrían a ser las plantillas en c++, pero en java, es decir: un conjunto de métodos que se puedan aplicar a diversos tipos de variables. Lo quiero hacer sin recurrir a la herencia entre clases, ya que me impondría limitaciones.

Por ejemplo, supongamos que tengo diversos algoritmos de ordenación (mergesort, quicksort, bubblesort, etc), y los tengo implementados. Lo primero que se me ocurre es crear un interfaz con un único método que compare un elemento con otro. Luego, crear una clase static que contenga todos los métodos y cuyos objetos sean los de la interfaz. Esto sería algo así como:

interface Ordenable {
comparar(Ordenable obj);
// ...
}

static class Ordenar {
static mergesort(Ordenable obj1, Ordenable obj2);
static quicksort(Ordenable obj1, Ordenable obj2);
// ...
}

Hasta aquí, todo parece correcto (a lo mejor hay faltas "gramaticales", pero me refiero a la estructura del programa). No obstante, imaginémonos que esto lo hago 2 veces, con la interfaz "Ordenable" y con la interfaz "Matrizable", que, por ejemplo, es capaz de tratar con matrices del tipo objeto.

En este momento, puedo crear métodos que trabajen con objetos Ordenables ó con objetos Matrizables, pero no se me ocurre el método de implementar un método que trabaje con objetos Ordenables y Matrizables a la vez.

Las preguntas son: ¿Está bien la implementación con Interfaz que he hecho? ¿Se puede arreglar lo de las dos interfaces sin tener que recurrir a la herencia entre interfaces?

Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder