pattern patron observer design-patterns terminology shim

design-patterns - patron - observer pattern



¿Cuál es la diferencia entre los patrones de calza y fachada/adaptador? (2)

En mis ojos, un adaptador y una calza serían lo mismo.

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

El uso del Adaptador significa que su código de cliente desconoce completamente, felizmente, los detalles de la implementación subyacente.

Estoy desarrollando una aplicación que necesita trabajar con diferentes versiones incompatibles de alguna biblioteca. Mi instinto fue introducir un adaptador entre la aplicación y la biblioteca que tendrá el objeto correcto de la biblioteca inyectado en ella. Entonces, alguien me habló de cuñas. No hay mucha literatura disponible al respecto.

Quería saber en qué se diferencian las calzas del patrón de diseño de la fachada y el adaptador. ¿Y cuáles son algunos de los usos populares de los mismos?


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

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

Mientras que un Adapter generalmente tiene un conjunto de interfaces bastante diferente, si no completamente diferente, con el objeto "adaptado".

Note el verbo "calmar" y "adaptar". Así es como suelo diferenciar los dos.