why extends is evil, resumen articulo de Allen Holub
“Why extends is evil”
by Allen Holub, javaworld.com 08/01/03
Básicamente este articulo hablo de las desventajas del manejo o implementación de herencia (extends) y ventajas del manejode interface (implements), donde incluso James Gosling (creador de java) dijo en una charla cuando se le pregunto, "¿qué le cambiaria a java si lo volviera a hacer?”, dijo que le cambiaria las clasesaunque mas que eso la herencia de estas, las cambiaria por interfaces.
De allí Allen Holub en el articulo despliega algunas razones para dejar la implementación de herencia (extends).
1. La primerasituación tiene que ver con la flexibilidad del código que escribe un programador, este debe ser flexible a la hora de implementar características nuevas que se van descubriendo con el tiempo, yestoy se debe hacer sin que sea de mayor dificultad, es decir que el cambio no sea demasiado drástico o doloroso a la hora de hacerlo, esto implica que la redacción del código no sea explícitamentecaracterísticas que sin duda se necesitan si no también las que quizás se podrían necesitar, porque así habría mas facilidad a la hora de alterar el código.
2. La segunda es el acoplamiento o enganchede las variables globales con las funciones, esto implica que si hay una variable enganchada a muchas funciones, al afectar esta variable de alguna manera, puede llevar como resultado el daño de dichasfunciones, entonces implica examinarlas, modificarlas y reanalizarlas, que resulta un proceso engorroso
Se sabe que son necesarios los enganches pero como diseñadores o programadores se debenminimizar.
3. El tercero es el acoplamiento entre las clases por la herencia, es decir una clase base con sus derivadas, cuando una clase base es modificada las derivadas también y puede llevar a unresultado negativo, como la disfunción total de un programa.
4. El cuarto y ultimo es el uso de marcos, los marcos son bancos de clases donde hay herencia con sus derivaciones, el riesgo aquí es que...
Regístrate para leer el documento completo.