'Favorecer la composición sobre la herencia' ayuda sobre todo a evitar…
Opciones
- Usar clases en el diseño de un programa
- Jerarquías profundas y frágiles, donde los cambios en la base se propagan (Opción correcta)
- Escribir interfaces para todas las clases del programa
- Usar polimorfismo en el diseño de un programa
Respuesta
Jerarquías profundas y frágiles donde los cambios en una clase base se propagan a las subclases
Por qué
La herencia ('es un') ata mucho a un hijo con su padre: un cambio en el padre puede romper a todos los hijos, y las jerarquías profundas se vuelven difíciles de entender.
La composición ('tiene un') construye un objeto a partir de partes más pequeñas que guarda como atributos: un Car TIENE un Engine. Las partes se cambian con facilidad, incluso en ejecución.
Usa herencia solo para relaciones 'es un' reales y mantenla poco profunda.
Recuerda
Prefiere 'tiene un' (composición) a 'es un' (herencia).