* Abstracción:centrarse en lo esencial
* La abstracción se trata de simplificar sistemas complejos ocultando detalles innecesarios. Te enfocas en lo que importa, no en cómo.
* Piense en un automóvil:no necesita saber cómo funciona el motor para conducirlo. El volante, el pedal del acelerador y los frenos son abstracciones que le permiten usar el automóvil sin comprender los intrincados mecanismos debajo.
* Reutilización:usando el código una y otra vez
* La reutilización significa crear código que se puede usar en múltiples proyectos o partes del mismo proyecto. Las bibliotecas, marcos y módulos son ejemplos de componentes reutilizables.
Cómo la abstracción permite la reutilización
* Definición de interfaces: Las abstracciones como las interfaces y las clases abstractas definen comportamientos y propiedades comunes. Esto le permite escribir código que funcione con cualquier implementación que se ajuste a la interfaz, promoviendo la reutilización del código.
* Ocultación de complejidad: Abstracción oculta los detalles de implementación, permitiéndole concentrarse en la funcionalidad central. Esto hace que el código sea más fácil de entender y reutilizar sin necesidad de preocuparse por implementaciones específicas.
* Promoción de la modularidad: Las abstracciones fomentan el diseño modular, descomponen sistemas complejos en componentes más pequeños y reutilizables.
Ejemplo
Imagine que está creando un sistema que necesita enviar notificaciones a los usuarios.
* sin abstracción: Puede escribir un código de notificación separado para el correo electrónico, SMS y notificaciones push, lo que lleva a la repetición y dificulta agregar nuevos métodos de notificación.
* con abstracción: Puede crear una clase abstracta de 'notificación' con métodos como `send ()`. Implementaciones específicas (Notificación de correo electrónico, SMSNotificación) heredarían de esta clase y proporcionarían sus propios métodos `send ()`. Esto permite que su código funcione con cualquier tipo de notificación sin necesidad de conocer los detalles de implementación específicos.
En resumen, la abstracción es como un plan. Establece las reglas de cómo deberían funcionar las cosas, lo que le permite construir componentes reutilizables que se ajustan a la perfección.