2012-03-01 11 views
14

Estoy desarrollando una aplicación que necesita trabajar con diferentes versiones incompatibles de alguna biblioteca. Mi intuición inicial fue la introducción de un adaptador entre la aplicación y la biblioteca que tendrá el objeto adecuado de la biblioteca inyectada en él. Entonces, alguien me habló de calzas. No hay mucha literatura disponible al respecto.¿Cuál es la diferencia entre los patrones de cuña y fachada/adaptador?

Quería saber cómo son las cuñas diferentes de la fachada y el patrón de diseño del adaptador? ¿Y cuáles son algunos de los usos populares de la misma?

+1

Véase también http://stackoverflow.com/questions/2116142/what-is-a-shim/12988556#12988556 –

+0

similar: https://softwareengineering.stackexchange.com/questions/66962/are-wrapper-and -shim- –

Respuesta

11

En mi opinión, un Adaptador y un Calcetín serían lo mismo.

Una fachada, por otra parte, tiene un objetivo diferente. Si espera que su código de cliente necesite poder retirar la cortina, por así decirlo, y acceder a la biblioteca subyacente sin usar su modelo de objeto, eso sería una Fachada. Facade presenta un conjunto simplificado o común de objetos/métodos sobre un sistema más complejo, pero aún proporciona acceso a las complejidades subyacentes cuando se requiere un comportamiento adicional.

El uso de Adapter significa que su código de cliente es completamente, felizmente inconsciente de los detalles de implementación subyacentes.

+0

Buena explicación de las diferencias de Fachada/Adaptador. – chakrit

+1

@Chakrit Pero su respuesta clarificó las diferencias entre Calces y Adaptadores –

9

IMO, Adapter y Shim funciona de manera similar pero significa algo diferente.

A Shim generalmente tiene un conjunto muy similar, si no exacto, de la interfaz con el objeto "shimmed". Por ejemplo, los objetos proxy podrían considerarse algo así como un shim.

Mientras que Adapter generalmente tiene un conjunto de interfaz bastante diferente, si no completamente diferente, con el objeto que se "adapta".

Tenga en cuenta el verbo "shim" y "adapt". Así es como generalmente diferencio a los dos.

Cuestiones relacionadas