Ver Mensaje Individual
  #34 (permalink)  
Antiguo 16/04/2006, 07:35
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 7 meses
Puntos: 32
Mmmm ... pero no es del GOF, no? (si podés, mandame una url para leerlo).

Como patrones de diseño, existen muchos, de muchos autores. El mismo GOF es una recopilación de patrones que no necesariamente crearon los autores del libro.

Hasta yo puedo crear un patrón y usar la herencia múltiple, pero eso no quiere decir que sea la mejor solución a un problema, ni que este pueda aplicarse en otros contextos.

Lo que quiero decir con los patrones, tomando como referencia un libro base reconocido mundialmente, es que ninguno de los patrones (de los 23) hacen uso de la herencia múltiple, y tampoco la sugieren.

Los patrones de diseño son considerados la mejor "receta de cocina" para resolver un problema recurrente, con el mejor diseño posible, donde puede ser aplicado en otros contextos (concepto de patrón: "elemento reutilizable de experiencia y conocimiento").

Otro detalle: generalmente cumplen todos el principio de "Abierto/Cerrado" (Open/Close), que dice "nuestros diseños deberían ser cerrados al cambio pero abiertos a la extensión", lo que hace que esté controlado el "foco de cambio" (donde generalmente se aplican los patrones).

No he visto en ningún texto que documente principios, sugerencias, guías o buenas prácticas de diseño que recomienden el uso de la herencia múltiple. Es más, lo que he visto es todo lo contrario, hacen mucho hincapié en controlar el uso de la herencia simple, llegando a desaconsejar hasta la sobreescritura de los métodos (por el hecho de "¿para que heredas si luego sobreescribes el comportamiento?").

Tampoco he leido que exista una discusión importante sobre el tema ni que hubiera una campaña para su uso. Creo que no se discute mucho el hecho de la "no conveniencia" del uso de la herencia múltiple.

Creo que el tema va más allá del lenguaje, el problema no es si un lenguaje lo soporta o no (volviendo al ejemplo del "goto"), el problema es si se debe usar o no, y los efectos que pueden causar sobre nuestro diseño y su mantenimiento.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com