Capítulo 5. Mutabilidad

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Ninguna persona pisa dos veces el mismo río. Porque no es el mismo río y no es la misma persona.

Heráclito

5.0 Introducción

Desde el principio del concepto de programa almacenado, has aprendido que el software son programas más datos. Está claro que sin datos no hay software. En la programación orientada a objetos construyes modelos que evolucionan con el tiempo, emulando los conocimientos que aprendes observando la realidad que estás representando. Sin embargo, manipulas y a veces abusas incontroladamente de esos cambios, violando el único principio de diseño importante al generar representaciones incompletas (y por tanto inválidas) y propagando el efecto dominó con tus cambios.

En el paradigma funcional, esto se aborda elegantemente prohibiendo las mutaciones. Puedes ser (un poco) menos drástico. Siendo fiel a la biyección en tu modelo computable, como se define en el capítulo 2, deberías ser capaz de distinguir cuándo cambia un objeto en función de lo accidental y prohibir todos los cambios esenciales (porque violarían el principio de biyección).

La inmutabilidad es una propiedad estricta en la programación funcional, y muchos lenguajes orientados a objetos están desarrollando herramientas para favorecerla. Sin embargo, muchos de ellos tienen restos en las clases básicas como Date o String. Los objetos deben saber defenderse de las ...

Get Libro de cocina de código limpio now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.