Hoy es el último mail que te escribo para explicarte las características principales de la programación orientada a objetos.
Hasta ahora te he hablado de abstracción, modularidad y jerarquía.
Hoy te voy a hablar de encapsulación.
Esta es mi parte favorita. Cuando la aprendí me cambió completamente la forma de programar.
No es que las otras 3 sean menos importantes. No. Es que las otras 3 tienen mucho que ver con matemáticas y de mates sé un mucho.
Bien. Te cuento.
En la programación orientada a objetos tenemos clases. Estas clases tienen datos y métodos para tratar estos datos.
La intencionalidad de estos métodos es esconder como se tratan los datos cuando se hacen las operaciones.
Por ejemplo, imáginate que tienes una clase Modal que puede ser visible o no visible.
Es muy común ver que esta clase tiene un método setIsVisible(boolean). De esta forma, si le paso true se muestra el modal y si le paso false se esconde el modal.
Bien. Hazte esta pregunta: ¿qué carajo le importa al cliente de este Modal saber si el is visible es un boolean?
Donde quiero llegar es que el atributo isVisible también se podría programar con un entero. -1 es no visible, 1 es visible.
Si se hace este cambio, estamos jodidos (en este caso no tanto porque sería fácil adaptar la clase Modal sin necesidad de cambiar el código del cliente).
Al final, lo que quiere el cliente del Modal es mostrar el modal y esconderlo. Por eso es bueno exponer dos métodos distintos (show, hide) que nos encapsulen la lógica necesaría para hacer esas operaciones.
Para mi, la clave de la encapsulación es que la clase servidor (la que encapsula las operaciones/datos) tiene que simplificarle la vida al cliente (quien usa esa clase).
En definitiva, como siempre, acabo con lo que dice la teoría.
La encapsulación es el proceso por el que se ocultan los detalles del soporte de las características de una abstracción
Que tengas un buen día y lo disfrutes,
Josué.
Soy Josué Alcántara y cada día envio un mail con una idea para escribir software de calidad. ¿A quién se la envío? A mi lista de suscriptores. Día que estás fuera, idea que te pierdes. Así de fácil.