Saltar al contenido

¿En qué se diferencian la abstracción y la encapsulación?

No busques más por todo internet porque estás al espacio indicado, contamos con la solución que necesitas y sin problemas.

Solución:

Encapsulación: ocultar datos usando getters y setters, etc.

Abstracción: ocultar la implementación usando clases e interfaces abstractas, etc.

Abstracción significa mostrar solo los detalles necesarios al cliente del objeto.

En realidad eso es encapsulación. consulte también la primera parte del artículo de wikipedia para no confundirse con la encapsulación y la ocultación de datos. http://en.wikipedia.org/wiki/Encapsulation_(programación_orientada a objetos)

tenga en cuenta que simplemente ocultar todos los miembros de su clase 1: 1 detrás de las propiedades no es una encapsulación en absoluto. la encapsulación tiene que ver con la protección de los invariantes y la ocultación de los detalles de implementación.

aquí un buen artículo sobre eso. http://blog.ploeh.dk/2012/11/27/Encapsulationofproperties/ también eche un vistazo a los artículos vinculados en ese artículo.

las clases, las propiedades y los modificadores de acceso son herramientas para proporcionar encapsulación en C#.

haces encapsulación para reducir la complejidad.

La abstracción es “el proceso de identificar patrones comunes que tienen variaciones sistemáticas; una abstracción representa el patrón común y proporciona un medio para especificar qué variación usar” (Richard Gabriel).

Sí, esa es una buena definición de abstracción.

Son conceptos diferentes. La abstracción es el proceso de refinar todo lo innecesario/no importante attributes de un objeto y mantener solo las características más adecuadas para su dominio.

Sí, son conceptos diferentes. tenga en cuenta que la abstracción es en realidad lo contrario de hacer que un objeto sea adecuado para SU dominio SOLAMENTE. ¡es para hacer que el objeto sea adecuado para el dominio en general!

si tiene un problema real y proporciona una solución específica, puede usar la abstracción para formalizar una solución más genérica que también puede resolver más problemas que tienen el mismo patrón común. de esa manera, puede aumentar la reutilización de sus componentes o usar componentes creados por otros programadores que están hechos para el mismo dominio, o incluso para diferentes dominios.

buenos ejemplos son las clases proporcionadas por .net framework, por ejemplo, list o collection. estas son clases muy abstractas que puede usar en casi todas partes y en muchos dominios. Imagínese si .net solo implementara una clase EmployeeList y CompanyList que solo pudiera contener una lista de empleados y empresas con propiedades específicas. tales clases serían inútiles en muchos casos. y qué dolor sería si tuviera que volver a implementar toda la funcionalidad para un CarList, por ejemplo. Entonces, la “Lista” se ABSTRAE de Empleado, Compañía y Automóvil. La Lista en sí misma es un concepto abstracto que puede ser implementado por su propia clase.

Las interfaces, las clases abstractas o la herencia y el polimorfismo son herramientas para proporcionar abstracción en C#.

haces abstracción para proporcionar reutilización.

Ejemplo de abstracción y encapsulación

Fuente de imagen

Abstracción: está delineado por las imágenes superior izquierda y superior derecha del gato. El cirujano y la anciana diseñaron (o visualizaron) al animal de manera diferente. De la misma manera, colocaría diferentes funciones en la clase Cat, según la necesidad de la aplicación. Cada gato tiene un hígado, una vejiga, un corazón y un pulmón, pero si necesita que su gato solo ‘ronronee’, abstraerá al gato de su aplicación al diseño en la parte superior izquierda en lugar de en la parte superior derecha.

Encapsulación: está delineado por el gato de pie sobre la mesa. Ese es lo que todos fuera del gato deberían ver al gato como. No necesitan preocuparse si la implementación real del gato es la de arriba a la izquierda o la de arriba a la derecha o incluso una combinación de ambas.


PD: Vaya aquí en esta misma pregunta para escuchar la historia completa.

Sección de Reseñas y Valoraciones

Te invitamos a animar nuestra función exponiendo un comentario y dejando una valoración te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *