14.9. Desarrollo incremental

Una de las ventajas de la herencia y la composición es el soporte al desarrollo incremental permitiendo introducir nuevo código sin causar fallos en el ya existente. Si aparecen fallos, éstos son rectificados con nuevo código. Heredando de (o componiendo con) clases y funciones existentes y añadiendo miembros de datos y funciones miembros (y redefiniendo las funciones existentes durante la herencia) puede dejar el código existente - por otro que todavía se esta usando - que alguien todavía lo este utilizando. Si ocurre algún error, ahora sabe donde esta el nuevo código, y entonces podrá leerlo mas rápido y fácilmente que si lo hubiera modificado en el cuerpo del código existente.

Es sorprendente como las clases son limpiamente separadas. Incluso no es necesario añadir el código fuente con funciones miembros para reutilizar el código, solamente el fichero de cabecera describiendo la clase y el fichero objeto o el fichero de librería con las funciones miembros compiladas. (Esto es válido tanto para la herencia como para la composición.)

Esto es importante para hacer que el desarrollo sea un proceso incremental, como el aprendizaje de una persona. Puede hacer tantos análisis como desee pero todavía no sabrá todas las respuestas cuando configure un proyecto. Tendrá más éxito y un progresión inmediata - si su proyecto empieza a crecer como una criatura orgánica, evolutiva, parecerá mas bien que esa construyendo algo como un rascacielos de cristal [52]

Sin embargo la herencia es una técnica útil para la experimentación, en algún punto donde las cosas están estabilizadas, necesita echar un nuevo vistazo a la jerarquía de clases para colapsarla dentro de una estructura sensible [53]. Recuerde que, por encima de todo, la herencia significa expresar una relación que dice "Esta nueva clase es un tipo de esta vieja". Su programa no debe preocuparse de cómo mueve pedazos de bits por alrededor, en vez debe crear y manipular objetos de varios tipos para expresar un modelo en los términos dados para su problema.