Capítulo 18. Clases Abiertas al Público
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Nuestros sistemas se componen de tipos y operaciones, sustantivos y verbos. En Java, los sustantivos se expresan como clases e interfaces, los verbos como métodos; pero Kotlin añade jerarquías de clases selladas y funciones independientes. ¿Qué aportan a la fiesta?
Cambiar es un reto constante en el diseño de software. Cuantas más personas utilizan nuestro software, más cosas se les ocurren que quieren que haga. Para dar soporte a nuevos casos de uso, tenemos que añadir nuevas funciones que funcionen con los tipos de datos existentes, y nuevos tipos de datos que funcionen con las funciones existentes. Si nuestro diseño está bien alineado con la forma en que tiene que evolucionar el software, podemos añadir nuevas funciones añadiendo código nuevo y haciendo pocos cambios localizados en nuestro código existente. Si no está bien alineado, tendremos que cambiar muchas funciones cuando añadamos un nuevo tipo de datos, o cambiar muchos tipos de datos cuando necesitemos añadir una función.
Sentimos esta tensión entre la variabilidad de los tipos de datos y de las funciones con mayor intensidad en las entidades centrales de nuestro modelo de dominio. Por ejemplo, el itinerario del viajero es una entidad central de nuestra aplicación Travelator. Muchas funciones de la aplicación presentan vistas de los itinerarios, alteran su contenido ...