Pregunta

¿Cuál es la diferencia entre una 'abstracción' y una 'fachada'?

¿Hay alguna diferencia en absoluto? O son los términos intercambiables?

¿Fue útil?

Solución

El patrón fachada es una interfaz simplificada a una base de código más grande, posiblemente más compleja. La base de código puede ser una sola clase, o más. La fachada sólo te da una interfaz sencilla para ello.

Abstracción , se utiliza para representar un concepto, pero que no está obligado a cualquier caso específico. (Es decir: Una clase abstracta). Esto no implica la simplificación (como el patrón de fachada hace), sino más bien hacer una interfaz 'común' o representación.

Otros consejos

Fachada es un patrón de diseño específico, destinado a ocultar las cosas internas dentro de un paquete / módulo de sus clientes detrás de una interfaz bien definida. Por lo general, se esconde varias interfaces / clases detrás de una sola común, de ahí su nombre.

'abstracción' es un término general, es decir, para ocultar los detalles concretos de algo del mundo exterior.

Así que estos dos no son términos intercambiables.

Fachada es un patrón de diseño GoF, muy específico. En esencia, se trata de ocultar la funcionalidad más complejo del cuerpo principal de la aplicación.

La abstracción es un término más vago relacionados con ocultar la funcionalidad de un servicio por parte del cliente.

Extracto me significa tomar las partes comunes de una colección de cosas y la creación de una cosa base a partir de ellos, que la colección se puede recurrir, como una especie de clase padre.

Una fachada es una cara (literalmente hablando), por lo que la analogía de una clase base no se sostiene del todo. Una fachada es más de una interfaz, por lo que no tendría que estar relacionado con las cosas que lo utilizan. Pienso en él más como una máscara. Mi clase tendrá una máscara de "usar y tirar", por ejemplo.

Así que la diferencia, en mi mente, es que un modelo abstracto permite una jerarquía que se construirá, donde como un patrón de fachada permite que las clases tienen un aspecto similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top