Diferencia entre abstracción y encapsulación

Diferencias clave entre abstracción y encapsulación

  • La abstracción muestra sólo datos útiles proporcionando la información más necesaria.tails, mientras que la encapsulación envuelve el código y los datos para obtener la información necesaria.
  • La abstracción se centra principalmente en lo que se debe hacer, mientras que la encapsulación se centra en cómo se debe hacer.
  • La abstracción oculta complexidad al brindarle una imagen más abstracta, mientras que la encapsulación oculta el trabajo interno para que pueda cambiarlo. later.
  • La abstracción le ayuda a dividir el programa en muchas partes independientes, mientras que la encapsulación es fácil de cambiar con nuevos requisitos.
  • Al comparar la encapsulación con la abstracción, la abstracción resuelve problemas a nivel de diseño, mientras que la encapsulación resuelve problemas a nivel de implementación.
  • La abstracción esconde lo irrelevante details se encuentra en el código, mientras que la encapsulación ayuda a los desarrolladores a organizar todo el código fácilmente.
Diferencia entre abstracción y encapsulación
Diferencia entre abstracción y encapsulación en Java

Definición de abstracción

La abstracción es un concepto de programación orientada a objetos que se centra únicamente en los datos relevantes de un objeto. Oculta el fondo details y enfatiza los puntos de datos esenciales para reducir la complexidad y aumentar la eficiencia. Generalmente retiene sólo la información que es más relevante para ese proceso específico. Abstracción El método se centra principalmente en la idea en lugar del funcionamiento real.

Definición de encapsulación

La encapsulación es un método para hacer una com.plex sistema más fácil de manejar para los usuarios finales. El usuario no necesita preocuparse por los problemas internos.tails y complexidades del sistema. La encapsulación es un proceso de empaquetar los datos y el código, que operan sobre los datos en una sola entidad. Puede asumirlo como un contenedor protector que detiene el acceso aleatorio al código definido fuera de ese contenedor.

Abstracción vs Encapsulación
Abstracción vs Encapsulación

Diferencia entre abstracción y encapsulación

Aquí está la principal diferencia entre abstracción y encapsulación:

Parámetro Abstracción La encapsulación
Uso La abstracción resuelve los problemas y cuestiones que surgen en la etapa de diseño. La encapsulación resuelve el problema y la cuestión que surgen en la etapa de implementación.
Focus La abstracción te permite centrarte en lo que hace el objeto en lugar de en cómo lo hace. La encapsulación le permite ocultar el código y los datos en una sola unidad para proteger los datos del mundo exterior.
Implementación Puede utilizar la abstracción utilizando la interfaz y la clase abstracta. Puede implementar la encapsulación utilizando modificadores de acceso (público, protegido y privado).
Focos Concéntrese principalmente en lo que se debe hacer. Concéntrese principalmente en cómo se debe hacer.
Aplicación Durante el nivel de diseño. Durante el nivel de Implementación.

¿Por qué necesitas abstracción?

Estas son las razones principales por las que se necesita la abstracción para la programación orientada a objetos:

  • Le ayuda a simplificar la representación de los modelos de dominio.
  • La abstracción esconde lo irrelevante details encontrado en el código.
  • La abstracción te ayuda a dividir el programa en muchos conceptos independientes.
  • Ofrece la mayor flexibilidad al utilizar objetos ADT (tipo de datos abstractos) en diferentes situaciones.

¿Por qué necesitas encapsulación?

Las principales ventajas de la encapsulación son

  • Mejora la mantenibilidad de una aplicación.
  • Ofrece flexibilidad al usuario para utilizar el sistema muy fácilmente.
  • Ayuda a los desarrolladores a organizar mejor el código.
  • Facilita el proceso general de codificación, ya que solo le preocupa lo que hace otra clase, no cómo lo hace.
  • Este método ayuda a los desarrolladores a ser más "objetivos" y orientados a resultados.
  • El código encapsulado es bastante flexible y fácil de cambiar con nuevos requisitos.
  • La encapsulación facilita las pruebas unitarias.
  • Le permite reducir el acoplamiento de módulos y aumenta la cohesión dentro de un módulo, ya que todas las piezas de un mismo objeto están encapsuladas en un solo lugar.
  • La encapsulación le ayuda a cambiar una parte del código sin afectar otras partes del código.
  • Mejora la legibilidad del código de la Aplicación.
  • Seguridad mejorada y facilita el mantenimiento de la aplicación.
  • La interfaz de encapsulación solo permite una interacción bien definida.

Ejemplo de abstracción

Supongamos que desea crear una aplicación bancaria y se le pide que recopile toda la información sobre su cliente. Hay posibilidades de que se te ocurra lo siguiente.wing información sobre el cliente.

Ejemplo de abstracción en programación orientada a objetos
Ejemplo de abstracción en programación orientada a objetos

Pero no se requiere toda la información anterior para crear una aplicación bancaria.

Por lo tanto, debe seleccionar de ese grupo sólo la información útil para su aplicación bancaria. Datos como nombre, dirección, información fiscal, etc. tienen sentido para una aplicación bancaria.

Ejemplo de abstracción en programación orientada a objetos
Ejemplo de abstracción en programación orientada a objetos

Dado que hemos obtenido/eliminado/seleccionado la información del cliente de un grupo más grande, el proceso se conoce como Abstracción.

Sin embargo, la misma información, una vez extraída, se puede utilizar para una amplia gama de aplicaciones. Por ejemplo, puede utilizar los mismos datos para solicitudes de hospitales, solicitudes de portales de empleo, bases de datos gubernamentales, etc., con poca o ninguna modificación. Por lo tanto, se convierte en su Datos Maestro. Ésta es una ventaja de la abstracción.

Ejemplo de encapsulación

Tomemos un ejemplo de dispositivo móvil. Con la ayuda de dispositivos móviles, puede realizar diversas funciones como tomar una fotografía, enviar un mensaje, grabar video/audio, acceder a la web y mucho más.

Las características mencionadas anteriormente son funcionalidades de la mayoría de los teléfonos inteligentes. Sin embargo, no es necesario comprender el funcionamiento interno details de esas funciones antes de utilizar este programa. Por ejemplo, no necesita saber cómo su cámara calcula la corrección gamma o identifica un rostro humano en una imagen. Sólo necesitas aprender la interfaz del software. Esto es encapsulación.