Java - herencia versus delegacion

 
Vista:

herencia versus delegacion

Publicado por oscar (2 intervenciones) el 09/04/2005 19:17:38
Hola.
Estoy realizando unos ejercicios pero hay una pregunta que no acabo de entender...vamos que no veo la respuesta:
es la siguiente:

.El uso de la delegacion es mes flexible que la herencia cuando se quiere reutilizar codigo??

Haber si alguien me puede ayudar
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

RE:herencia versus delegacion

Publicado por i92jurir (64 intervenciones) el 09/04/2005 21:08:41
Por lo general la delegacion es mas flexible puesto que la interfaz del objeto interno esta oculta a los usuarios del objeto externo, por lo que este objeto puede ofrecer su propio interfaz. En la herencia siempre esta disponible el interfaz de la superclase y lo unico que podemos hacer es sobreescribir o añadir metodos.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:herencia versus delegacion

Publicado por chuidiang (532 intervenciones) el 11/04/2005 14:49:20
Hola:

Otro punto a favor de la delegación es que puede cambiarse el objeto interno por otro en tiempo de ejecución, mientras que en la herencia no.

Si tienes una instancia del objeto externo, pasándole un nuevo objeto en el que delega, se cambia el comportamiento de esa instancia del objeto externo.
Por ejemplo
ClaseA a = new ClaseA();
ClaseA b = a;
a.tomaNuevoObjetoParaDelegar (new ObjetoParaDelegar());
// Tanto a como b se ven afectados.

Si lo haces con herencia, tendrías que instanciar una nueva clase hija y en TODAS las variables que tengas que apunten a la instancia antigua, tienes que cambiarlas por la nueva.
Por ejemplo
ClaseA a = new ClaseA();
ClaseA b = a;
a = new ClaseHijaDeA();
// b sigue teniendo la ClaseA.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar