La abstracción y la encapsulación son conceptos básicos de programación orientada a objetos (OOP) que le permiten implementar objetos del mundo real en programas y códigos. Mientras que ambos van de la mano, son muy diferentes entre sí. Si bien cada método es una encapsulación, también es una abstracción. En términos simples, cuando unen diferentes cosas para crear una entidad, en realidad crean un concepto: un resumen. Si bien ambos son técnicamente inseparables, literalmente no tienen nada en común. Es casi cierto que cada encapsulación es una abstracción porque ambos ocultan algo, sin embargo, tienen su parte justa de las diferencias.
La abstracción es un concepto básico de POO que se centra solo en los datos relevantes de un objeto y oculta todos los detalles irrelevantes que pueden ser o no para el comportamiento genérico o especializado. Oculta los detalles de fondo y hace hincapié en los puntos esenciales para reducir la complejidad y aumentar la eficiencia. Básicamente, la abstracción es una herramienta de programación para gestionar la complejidad. La abstracción se centra en ideas en lugar de eventos. Oculta los detalles en el nivel de diseño al proporcionar funcionalidad a los usuarios. El objeto resultante también se puede llamar una abstracción. El programador se asegura de que la entidad nombrada tenga todos los aspectos esenciales incluidos y ninguno de los irrelevantes.
Tomemos un ejemplo de abstracción del mundo real. Consideremos el caso de un vehículo, que en este caso es su vehículo. Un mecánico intenta reparar su automóvil o, digamos, una parte específica de su automóvil. Aquí, usted es el usuario y no desea entrar en los detalles específicos de su automóvil o qué parte realmente se rompió. En realidad no te importan esas cosas; solo desea que su vehículo vuelva a estar en su estado original sin preocuparse por los detalles. Entonces, realmente le dijo al mecánico lo que desea al segregar la parte de implementación. Esto es abstracción. Usted se enfocó en lo más esencial, que es arreglar su auto, en lugar de enfocarse en los detalles específicos..
La encapsulación es otro concepto de OOP que une datos y funciones en un solo componente al tiempo que restringe el acceso a algunos componentes. Es uno de los principales conceptos fundamentales de la programación orientada a objetos que envuelve datos e información en una sola unidad. En términos técnicos, la encapsulación significa ocultar los atributos para proteger las variables del acceso externo para que el cambio en una parte de una aplicación no afecte a las otras partes. Por el contrario, al hacer que la información sea más abierta, se arriesgará a un mal uso de los datos. Proporciona integridad básica a los datos al protegerlos del mundo exterior. En términos simples, oculta los detalles adicionales del mundo exterior..
Tomemos un ejemplo de un mouse Bluetooth. Solo necesita conocer el comportamiento del dispositivo sin preocuparse por los detalles de implementación, como el tipo de sensores que tiene el mouse, si es inalámbrico o no, etc. Cada detalle describe el mouse, pero independientemente de los detalles, es solo un mouse. Solo necesita una interfaz para usar el mouse, que en este caso es el puntero del mouse. Esto es encapsulacion.
Si bien ambos son conceptos fundamentales relacionados con la POO y son técnicamente inseparables, todavía tienen sus diferencias en muchos aspectos..
Abstracción | Encapsulacion |
Trata solo con los detalles relevantes ocultando los irrelevantes para reducir la complejidad, aumentando así la eficiencia. | Enlaza los datos y la información en una sola entidad para proteger los datos de fuentes externas. |
Se refiere a la idea de ocultar datos que no se requieren para fines de presentación. | Oculta los datos y el código para restringir el acceso no deseado.. |
Se enfoca en que en lugar de como. | Oculta la mecánica interna de cómo hace algo.. |
Oculta los detalles innecesarios en el nivel de diseño.. | También esconde los detalles pero a nivel de implementación.. |
La información y los datos están separados de los datos relevantes.. | La información está oculta dentro de una cápsula para un acceso cercano.. |
Se trata de ideas en lugar de eventos.. | La idea es proteger los datos del mundo exterior.. |
Se implementa utilizando la clase abstracta y la interfaz.. | Se implementa utilizando modificadores de acceso protegidos, privados y de paquetes privados.. |
Si bien ambos son conceptos de POO relacionados con la ocultación de datos, son bastante diferentes entre sí. La abstracción también se relaciona con la ocultación como la encapsulación, pero mientras que la primera oculta la complejidad, la segunda mantiene los datos que encapsula mediante el control del acceso a ellos. La abstracción se refiere al concepto de representar solo las características necesarias ocultando los detalles irrelevantes para reducir la complejidad de una aplicación, aumentando así la eficiencia. La encapsulación, por otro lado, se refiere al concepto de ocultar toda la mecánica interna de un programa para proteger la información del acceso no deseado. Enlaza los datos y la información en un solo componente al restringir el acceso a otros componentes.