Contestaré tu pregunta con una pregunta; cuando manejaste al trabajo esta mañana (supongo que de hecho lo hiciste), ¿te importó exactamente cómo el motor abrió las válvulas para dejar entrar las mezclas de combustible y aire, y luego las encendió? No. No te importa cómo funciona el motor de tu automóvil cuando conduces por la carretera. Te importa que hace el trabajo.
Supongamos que un día su automóvil no funciona. No arranca, tira una varilla, rompe un cinturón, se abate inexplicablemente en esa barrera de concreto sin culpa tuya mientras estabas ocupado enviando mensajes de texto. Ahora, necesita un auto nuevo (al menos temporalmente). ¿Te importa exactamente cómo funciona este auto nuevo? No. Lo que le importa es primero que funcione, y segundo, que puede usar los mismos conocimientos y habilidades que utilizó para conducir su automóvil viejo para conducir el nuevo. Idealmente, debería parecerle que no ha habido cambios en el automóvil que conduce. Siendo realistas, la forma en que funciona este nuevo automóvil debería darle la menor cantidad de "sorpresas" posible.
Estos principios básicos son el principio central detrás de la encapsulación y la abstracción. El conocimiento de cómo un objeto hace lo que hace no debería ser un requisito para usarlo para hacer lo que hace. Incluso en la programación de computadoras, los detalles de las rutas eléctricas dentro de la CPU que ejecuta su programa se resumen detrás de al menos media docena de capas de instrucciones de E / S, controladores, software del sistema operativo y tiempo de ejecución. Muchos ingenieros de software muy exitosos escriben código perfectamente bueno sin preocuparse una vez por la arquitectura exacta del hardware, o incluso la compilación del sistema operativo, que lo ejecutará. Incluyéndome a mí.
La encapsulación / ocultación de información permite la mentalidad de "no importa cómo funciona, solo importa que lo haga". Su objeto debe exponer lo que es útil para el consumidor, de manera que el consumidor pueda consumirlo fácilmente. Ahora, de vuelta en el mundo real, esto no significa que un automóvil no deba brindarle al usuario ninguna información sobre el funcionamiento interno, o que el automóvil solo debe permitir al usuario la funcionalidad más básica como el encendido, el volante, y pedales. Todos los automóviles tienen velocímetros y medidores de combustible, tacómetros, luces idiotas y otros comentarios. Prácticamente todos los automóviles también tienen interruptores para varios subsistemas independientes, como faros, intermitentes, radio, ajuste del asiento, etc. Algunos automóviles permiten una entrada bastante esotérica del usuario, como la sensibilidad del diferencial central de deslizamiento limitado. En todos los casos, si sabes lo suficiente, puedes abrirlo y cambiar las cosas para que funcione de una manera ligeramente diferente. Pero, en la mayoría de los casos, tal vez, solo tal vez, ¿el usuario no debería poder controlar directa e independientemente las bombas de combustible desde el interior de la cabina? ¿Quizás, solo quizás, el usuario no debería poder activar sus luces de freno sin pisar realmente el pedal del freno?
La abstracción permite "esto no es lo mismo que eso, pero como ambos son X, puedo usarlos como lo haría con cualquier mentalidad X". Si su objeto hereda o implementa una abstracción, sus consumidores deben esperar que su implementación produzca el mismo o similar resultado que otras implementaciones conocidas de la abstracción. Un Toyota Camry y un Ford Fusion son ambos "autos". Como tal, tienen un conjunto común de funcionalidad esperada, como un volante. Gírelo en el sentido contrario a las agujas del reloj, el automóvil va a la izquierda. Gírelo en sentido horario, el auto va a la derecha. Puedes subirte a cualquier automóvil en los Estados Unidos y esperar que el automóvil tenga un volante y al menos dos pedales, el de la derecha es el pedal de "auto va" y el del centro es el pedal de "auto se detiene" .
Un corolario de la abstracción es la "teoría del menor asombro". Si se puso al volante de un automóvil nuevo para una prueba de manejo, giró el volante en el sentido de las agujas del reloj y el automóvil giró a la izquierda, por lo menos quedaría asombrado. Acusaría al vendedor de vender un TPV y es poco probable que escuche alguna de sus razones por las cuales el nuevo comportamiento es "mejor" de lo que está acostumbrado, o qué tan bien está "documentado" este comportamiento o cómo " transparente "es el sistema de control. A pesar de que este automóvil nuevo y todos los demás que ha conducido siguen siendo "automóviles", al conducir este automóvil tiene que cambiar algunos conceptos fundamentales de cómo se supone que se debe conducir un automóvil para conducirlo con éxito. Eso suele ser algo malo y solo sucede cuando hay una ventaja intuitiva para el nuevo paradigma. Quizás la adición de cinturones de seguridad es un buen ejemplo; Hace 50 años recién entraste y te fuiste, pero ahora tienes que abrocharte el cinturón, la ventaja intuitiva es que no pasas por el parabrisas ni entras en el asiento del pasajero si tienes un accidente. Incluso entonces, los conductores resistieron; muchos propietarios de automóviles cortaron los cinturones de seguridad del automóvil hasta que se aprobaron leyes que ordenaban su uso.